Ich habe einen Post-Typ, der post_save verwendet, um die Adresse aus dem Post-Meta zu entnehmen und die Lat / Lng-Koordinaten von der Google-API abzurufen. Ich muss den Benutzer benachrichtigen, wenn beim Abrufen der Koordinaten ein Problem aufgetreten ist. Ich habe versucht, admin_notices zu verwenden, aber nichts angezeigt:
public static function update_notice() {
echo "<div class='error'><p>Failed to retrieve coordinates. Please check key and address.<p></div>";
remove_action('admin_notices', 'update_notice');
}
add_action('admin_notices', array('GeoPost', 'update_notice'));
Ich bin nicht sicher, ob ich es falsch oder im falschen Kontext verwende. Um klar zu sein, befindet sich die add_action im aktuellen Code in einer anderen Funktion in derselben Klasse. Das funktioniert gut.
Antworten:
Der Grund, warum dies nicht funktioniert, ist, dass nach der Aktion save_post eine Umleitung stattfindet. Eine Möglichkeit, wie Sie die gewünschten Ergebnisse erzielen können, besteht darin, eine schnelle Problemumgehung mithilfe von Abfragevariablen zu implementieren.
Hier ist ein Beispiel für eine Demonstrationsklasse:
Hoffe das hilft dir ein bisschen. Prost
quelle
public function admin_notices()
(eine zusätzliche schließende Klammer in derif ( ! isset(..
Zeile)remove_query_arg('YOUR_QUERY_VAR');
wie ich fand, dass es vom letzten Update eingestellt werden kann.Erstellt eine Wrapper-Klasse für diese Art von Szenario. Tatsächlich kann die Klasse in jedem Szenario verwendet werden, in dem Benachrichtigungen angezeigt werden. Ich verwende die PSR-Standards, daher ist die Benennung für Wordpress-Code untypisch.
Verwendung:
Der Hinweis wird einmal angezeigt.
quelle
Neben @ jonathanbardo Antwort , die auch große und Funktionen ist, wenn Sie die Abfrage Argument , nachdem die neue Seite geladen wird entfernen möchten, können Sie das verwenden removable_query_args Filter. Sie erhalten eine Reihe von Argumentnamen, an die Sie Ihr eigenes Argument anhängen können. Dann kümmert sich WP darum, alle Argumente in der Liste aus der URL zu entfernen.
Etwas wie:
Wird werden:
quelle
Einfach, elegant, basierend auf
get_settings_errors()
.Verwendung
In Ihrem Post-Request-Handler:
Wo möchten Sie den Admin-Hinweis verwenden, in der Regel in den
admin_notices
Haken.quelle