Empêcher les formulaires dans WordPress de renvoyer des alertes en utilisant le modèle post \/ Redirect \/ get
L’article d’aujourd’hui traite d’un thème de haut niveau dans le développement de WordPress, écrit par un invité exceptionnel et le développeur et éducateur de WordPress Carl Alexander. C
Arl est un développeur PHP de Montréal, au Canada, qui partage son enthousiasme pour les sujets de programmation avancée sur son site Web, carralexander. Ca publie régulièrement des articles. Carl, un habitué de WordPress camp, est l’organisateur de WordPress Montréal depuis 2010 et aide à organiser d’autres événements WordPress tout au long de l’année. Il est également l’auteur du livre Learning Object – Oriented Programming Using WordPress. Vous pouvez le trouver sur Twitter et github.Nous avons tous connu un tel succès. Nous remplissons le formulaire dans l’application Web. Commençons par les cauchemars des spécialistes de la convivialité Web, et c’est ce que nous avons vu: la fenêtre d’avertissement infâme \
Alors, comment créer une page d’administration WordPress sans cet horrible avertissement? Utilisez le modèle publier \/ rediriger \/ obtenir. C’est aussi un modèle à utiliser avec wordpress. Voyons comment tu fais! Pourquoi l’alerte « confirmer la soumission du formulaire » apparaît – elle? Tout d’abord, voyons pourquoi cette notification est affichée. Après tout, l’avis de retour de formulaire existe pour une raison! Pourquoi votre navigateur Web vous cause – t – il tant de problèmes? Supposons que vous soyez sur la page paiements du site Web du commerce électronique
Contenu de la page de succès.
Le navigateur exécute ensuite une requête get basée sur l’en – tête de position dans la réponse de redirection. Ceci récupère le contenu de la page réussie. Mais maintenant, puisque la dernière demande est une demande get, vous pouvez mettre à jour la page sans avertissement. (uzach!) Imaginons que nous ayons créé la page d’administration wordpress pour le plugin en cours de développement. Il a un formulaire que nous pouvons envoyer pour mettre à jour ses paramètres. Voici à quoi il ressemble: \/ * * * enregistrer la page d’administration du plug – in Fonctions myplugin _ create admin page () {add menu page (‘My plugin admin page’, ‘My plugin admin page’, ‘Edit posts’,’ myplugin admin page ‘,’ myplugin Display admin page ‘); Ajouter une action (\
Comme indiqué ci – dessus, utilisez le modèle post \/ Redirect \/ get dans WordPress, ce qui est fait par défaut si vous utilisez l’api de configuration. Mais notre module n’utilise pas l’API de configuration. Comment convertir cela en un modèle post \/ Redirect \/ get? Ajouter une redirection ajoute une redirection directement à la fonction myplugin _ Display admin page. Similaire à ceci: \/ * * * afficher la page de gestion du plug – in Fonction myplugin _ Display admin
_ page () {if (isset ($post [‘myplugin option]) {Update option (‘ myplugin option ‘, $post [‘ myplugin option]); WP redirection (menu page url (‘myplugin admin page’, false), 303); exit;} \/..] Nous avons ajouté un appel à la fonction de redirection WP _ dans l’instruction if. Nous fournissons la valeur retournée par la fonction menu _ page url. Il s’agit d’une fonctionnalité de support pratique pour générer des URL pour les pages de gestion. Par défaut, il fait écho à l’URL, donc nous devons passer à false comme deuxième argument pour l’empêcher.
Pour la redirection, vous devez également toujours appeler la fonction exit. Cela met fin au script et redirige les cheveux vers le navigateur. C’est pourquoi il est dit au navigateur d’effectuer la redirection. Maintenant, essayer d’implémenter le modèle post \/ Redirect \/ get de cette façon pose un gros problème: il ne fonctionnera que dans quelques rares cas. (Oui, je t’ai menti!) Au lieu de rediriger, vous verrez un avertissement PHP indiquant que l’en – tête a été envoyé. Que pouvez – vous faire? On pourrait utiliser un crochet peu connu. On appelle ça un crochet admin _ post.
C’est le crochet que WordPress appelle lorsque vous envoyez une demande à la page WP admin \/ admin post. Php. Lorsque WordPress reçoit une demande pour cette page, il cherche le paramètre action. Dans l’affirmative, WordPress appellera admin _ POST OPERATION Hook. Cela peut sembler déroutant, mais une fois que vous aurez mis à jour nos exemples, il sera plus facile de les comprendre. Enregistrer la page de gestion du plug – in en utilisant Hook admin _ post \/ * * *. Fonctions myplugin _ create admin page () {add menu page (‘My plugin admin page’, ‘My plugin admin page’, ‘Edit posts’,’ myplugin admin page ‘,’ myplugin Display admin page ‘); Ajouter une action (\
OST [‘myplugin _ option’] {Update option (‘myplugin option’, $post [‘myplugin option]);} WP _ redirection (Admin URL (‘admin.php? Page = myplugin admin page’), 303);} Ajouter _ action (‘admin post myplugin Update options’,’ myplugin admin Update options’); Fonction myplugin Display admin page () {$option = get option (‘myplugin option’, ‘);? > Mon plug – in de page d’administration