J'ai un type de message qui utilise post_save pour prendre l'adresse du post-méta et récupérer les coordonnées lat / lng de l'API Google. J'ai besoin d'un moyen d'avertir l'utilisateur s'il y a eu un problème avec la récupération des coordonnées. J'ai essayé d'utiliser admin_notices, mais rien ne s'affiche:
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'));
Je ne sais pas si je l'utilise incorrectement ou dans le mauvais contexte. Pour être clair, dans le code réel, add_action est dans une autre fonction de la même classe. Ça marche bien.
Réponses:
La raison pour laquelle cela ne fonctionne pas est parce qu'une redirection se produit après l'action save_post. Vous pouvez obtenir ce que vous voulez en implémentant un travail rapide autour de l'utilisation des variables de requête.
Voici un exemple de classe pour démontrer:
J'espère que cela vous aide un peu. À votre santé
la source
public function admin_notices()
(un crochet de fermeture supplémentaire dans laif ( ! isset(..
ligne)remove_query_arg('YOUR_QUERY_VAR');
car j'ai trouvé qu'il peut être défini à partir de la dernière mise à jour.Création d'une classe wrapper pour ce type de scénario. En fait, la classe peut être utilisée dans n'importe quel scénario impliquant l'affichage d'avis. J'utilise les normes PSR, donc la dénomination est atypique du code Wordpress.
Usage:
L'avis s'affiche une fois.
la source
En plus de la réponse de @ jonathanbardo qui est excellente et fonctionne bien, si vous souhaitez supprimer l'argument de requête après le chargement de la nouvelle page, vous pouvez utiliser le filtre amovible_query_args . Vous obtenez un tableau de noms d'arguments auxquels vous pouvez ajouter votre propre argument. WP se chargera ensuite de supprimer tous les arguments de la liste de l'URL.
Quelque chose comme:
Va devenir:
la source
Simple, élégant, basé sur
get_settings_errors()
.Usage
Dans votre gestionnaire de demandes de publication:
Où vous souhaitez utiliser l'avis d'administration, généralement dans le
admin_notices
crochet.la source