Das Erstellen und Anzeigen von Fehlern / Hinweisen umfasst mehrere Komponenten:
add_settings_error()
Aufruf zum Hinzufügen eines Elements zum Stapel (globale $wp_settings_errors
Variable).
settings_errors
vorübergehend, wodurch die Fehler erhalten bleiben, damit sie überleben, bewegen Sie sich von Seite zu Seite.
settings_errors()
Funktion get_settings_errors()
zum Abrufen von Fehlern aus dem Speicher oder vorübergehend und zeigt sie dann an.
Diese funktionieren wie ein Zauber für die Einstellungs-API, sind jedoch leider nicht für die allgemeine Verwendung eingerichtet. Andererseits ist es trivial, das zu umgehen.
Haken settings_errors()
zu admin_notices
auf Ihrem Plugin Seite, übergeben Sie den Fehlercode , um es so ist es nur Ihre Sachen zeigt.
Speichern Sie Fehler manuell in settings_errors
Transienten (füllen Sie einfach diese globale Variable hinein).
Da get_settings_errors()
in GET-Parametern ( $_GET['settings-updated']
) ein Hinweis erwartet wird, dass transient anstelle von Speicher überprüft werden soll, können Sie dies entweder bereitstellen oder Fehler von transient selbst settings_errors()
abrufen und diese vor Ihrem Aufruf in einer globalen Variablen speichern .
Aktualisieren
Sie verwandeln dies in ein Chaos mit mehreren Fragen, daher werde ich versuchen, Ihre Bedenken hier anzusprechen.
Die Einstellungs-API funktioniert mit Administrationsseiten, die den Abschnitt "Einstellungen" nicht als Basis verwenden. Ihr eigentliches Problem ist, dass in diesem Fall die Fehler- / Benachrichtigungsmeldung nicht funktioniert.
Zunächst geschieht Folgendes, wenn Sie ein Formular veröffentlichen, das mit der Einstellungs-API eingerichtet wurde:
- Daten werden auf einer speziellen
options.php
Seite veröffentlicht.
- Dort werden Daten per Rückruf bereinigt / validiert.
- Alle Fehler / Hinweise, die während der Desinfektion / Validierung aufgetreten sind, werden gesammelt und vorübergehend gespeichert.
- Sie werden dorthin zurückgeleitet, wo Sie herkommen .
Wenn Sie jetzt die Administrationsseite laden, wird überprüft, ob diese Seite zum Abschnitt Einstellungen gehört und ob dieser Fall eine winzige options-head.php
Datei enthält, die sich mit dem Abrufen und Anzeigen von Fehlermeldungen befasst.
Das einzige, was auf anderen Seiten "nicht funktioniert", ist dieser letzte Schritt, der trivial ist, um sich einen Überblick über die oben genannten verwandten Funktionen zu verschaffen (ich habe wahrscheinlich zu viele Details zu Transienten behandelt, die Sie für den Basisfall nicht benötigen).
Ein bisschen spät, aber ich habe das gerade durchgemacht. Basierend auf dem OP-Code besteht die beste Lösung darin, diesen Code einzufügen:
Dadurch wird die Anzeige der Administratorbenachrichtigung zu den mit add_menu_page gerenderten Administrationsseiten hinzugefügt
quelle
Einfach hinzufügen
Die $ -Funktion meiner benutzerdefinierten Menüseite schien gut zu funktionieren, um die Fehlermeldungen auf benutzerdefinierten Menüseiten anzuzeigen.
quelle