Ö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.