Esistono diversi componenti per errori / notare la creazione e il processo di visualizzazione:
add_settings_error()
chiama per aggiungere l'elemento allo stack ( $wp_settings_errors
variabile globale ).
settings_errors
transitorio che mantiene gli errori in modo che sopravvivano al passaggio da una pagina all'altra.
settings_errors()
funzione get_settings_errors()
per recuperare errori dalla memoria o transitori e quindi visualizzarli.
Funzionano come un fascino per l'API delle impostazioni, ma sfortunatamente non sono configurati per l'uso generico. D'altra parte è banale aggirare questo.
Collegalo settings_errors()
alla admin_notices
pagina del tuo plugin, passa il codice di errore in modo che mostri solo le tue cose.
Salva manualmente gli errori in settings_errors
transitori (inseriscici solo la variabile globale).
Dal momento che si get_settings_errors()
aspetta un suggerimento nei parametri GET ( $_GET['settings-updated']
) che dovrebbe controllare i transitori anziché la memoria, è possibile fornire tale errore o ottenere errori dai transitori e salvarli nella variabile globale prima della settings_errors()
chiamata.
Aggiornare
Lo stai trasformando in un pasticcio con domande multiple, quindi cercherò di rispondere alle tue preoccupazioni qui.
Impostazioni API fa lavoro con pagine di amministrazione, che non usano sezione Impostazioni di base. Il vero problema è che in tal caso la segnalazione di errori / avvisi non funziona.
Innanzitutto ecco cosa succede quando pubblichi un modulo, configurato con l'API delle impostazioni:
- I dati vengono pubblicati su una
options.php
pagina speciale .
- I dati vengono disinfettati / convalidati tramite callback.
- Qualsiasi errore / avviso emerso durante la sanificazione / convalida viene raccolto e salvato in modo temporaneo.
- Verrai reindirizzato da dove vieni .
Ora quando carichi la pagina di amministrazione controlla se questa pagina appartiene alla sezione Impostazioni e se quel caso include un options-head.php
file minuscolo , che si occupa di recuperare e visualizzare avvisi di errori.
Quindi l'unica cosa "non funzionante" su altre pagine è quest'ultima fase, che è banale fare te stesso con una panoramica della funzione correlata sopra (probabilmente sono entrato in troppi dettagli sul transitorio, non ne avrai bisogno per il caso di base).