Le processus de création et d'affichage des erreurs / avis comporte plusieurs éléments:
add_settings_error()
appel pour ajouter un élément à la pile ( $wp_settings_errors
variable globale ).
settings_errors
transitoire qui conserve les erreurs afin qu'elles survivent se déplacent de page en page.
settings_errors()
fonction get_settings_errors()
pour récupérer les erreurs de mémoire ou transitoires et affiche ensuite les.
Ceux-ci fonctionnent comme un charme pour l'API Paramètres, mais malheureusement, ils ne sont pas configurés pour une utilisation générique. D'un autre côté, il est trivial de contourner cela.
Accrochez- settings_errors()
vous admin_notices
sur la page de votre plugin, passez-lui le code d'erreur pour qu'il ne montre que vos trucs.
Enregistrez manuellement les erreurs dans les settings_errors
transitoires (remplissez simplement cette variable globale).
Comme get_settings_errors()
attend un indice dans les paramètres GET ( $_GET['settings-updated']
) qu'il devrait vérifier les transitoires au lieu de la mémoire, vous pouvez soit fournir cela, soit obtenir des erreurs de transitoires vous-même et les enregistrer de nouveau dans la variable globale avant votre settings_errors()
appel.
Mise à jour
Vous transformez cela en un peu de gâchis avec plusieurs questions, donc je vais essayer de répondre à vos préoccupations ici.
API Paramètres fait le travail avec des pages d'administration, qui n'utilisent pas la section Paramètres de base. Votre vrai problème est que dans ce cas, le rapport d'erreurs / avis ne fonctionne pas.
Voici d'abord ce qui se passe lorsque vous publiez un formulaire, configuré avec l'API Paramètres:
- Les données sont publiées sur une
options.php
page spéciale .
- Là, les données sont nettoyées / validées à l'aide du rappel.
- Toutes les erreurs / notifications survenues lors de la désinfection / validation sont collectées et enregistrées en transitoire.
- Vous êtes redirigé vers votre pays d'origine .
Maintenant, lorsque vous chargez la page d'administration, il vérifie si cette page appartient à la section Paramètres et si ce cas comprend un petit options-head.php
fichier, qui traite de la récupération et de l'affichage des avis d'erreur.
Donc, la seule chose "qui ne fonctionne pas" sur les autres pages est cette dernière étape, ce qui est trivial pour vous faire avec un aperçu de la fonction connexe ci-dessus (je suis probablement entré dans trop de détails sur les transitoires, vous n'en aurez pas besoin pour le cas de base).