Özel yönetici sayfası add_options_page'e () bağlı değilse Ayarlar API'sı güncellenmiş iletileri gösterilmez


9

Ayarlar API'sı ile oynatılıyor ve iletilerin (başarı veya hatalar için) yalnızca bir ayarlar sayfası add_options_page () aracılığıyla WordPress menüsüne bağlandığında görüntülendiğini buldu. Başka hiçbir şey çalışmaz, örneğin add_dashboard_page (). Bunun doğru olup olmadığını bilmek ister misiniz? Denediğim örnek kod , Ayarlar API'sı dışındaki seçenekleri de güncellemek istediğinde Ayarlar API'sı için register_settings'i kancalamak için "RegisteredSettingsTest" sınıfını içeren cevaptır ?

Yanıtlar:


21

Her iki önerileriniz için teşekkürler Chip ( mükemmel Ayarlar API'sı öğretici ) ve t31os ( hızlı test için harika kod snippet'i ).

Biraz daha kazma yaptım ve herhangi bir menüye bağlandığımda ancak yalnızca settings_errors () işlevi çağrıldığında varsayılan mesajların gerçekten görüntülenebileceğini buldum .

Örneğin, t31os kodunu aşağıdaki gibi değiştirmek:

<div class="wrap">
  <h2>Test</h2>
  <?php settings_errors(); ?>
  <form action="options.php" method="post">

Özel hata mesajları , parametreyi 'hata' veya 'güncellenmiş' olarak belirterek başarı veya hata mesajını görüntülemek için add_settings_error () işlevini çağırarak da eklenebilir $type.


Bu beni de bir süre boğdu! kullanarak settings_errors();hile yaptı, bir takip göndermek için teşekkürler Jesse!
CommentLuv

10

Tema ile Settings API entegrasyonunu kullanıyorum add_theme_page(), kullanıyorum ve yönetici bildirimlerini görüntülerken sorunum yok.

Bunun Ayarlar API'sı sınırlaması yerine kodunuzla ilgili bir sorun olduğundan şüpheleniyorum .

Gerçek kodunuzu gönderebilir misiniz, böylece kodla ilgili sorunları çözmenize yardımcı olabilir miyiz?

DÜZENLE

Yönetici bildirimlerinizi açıkça vermeniz gerekebilir. Örneğin, ayarlarım sayfa işaretleme işlevimde kullandığım şey:

<?php if ( isset( $_GET['settings-updated'] ) ) {
    echo "<div class='updated'><p>Theme settings updated successfully.</p></div>";
} ?>

Hata bildirimleri için de benzer bir şey yapabileceğinizi varsayıyorum.


Güncellenmiş cevaba bakınız.
Chip Bennett

Kullandığım kod pastebin'de bulunabilir . Yeterince açık olmasam özür dilerim. Gözlemlediğim şey, menüye bağlandığımda add_options_page()ve ayarları kaydettiğimde, "Ayarlar kaydedildi" mesajı görüntülenecektir. Ancak, add_theme_page()veya kodunu kullanmak için değiştirirsem, add_dashboard_page()varsayılan "Ayarlar kaydedildi" mesajı görünmez.
Jesse van Couten

Doğru ... yukarıdaki örneğe göre kod eklediniz mi? Ayarları sayfa işaretleme işlevinize açıkça eklemeniz gerekir.
Chip Bennett

Test kodumu üstüne inşa etmek için kullandığınızdan memnun oldum, Chip, bildirimi kendiniz açıkça eklemeniz gerekeceğidir. Ayarlar sayfanızla iyi şanslar Jesse .. :)
t31os
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.