Créer un système de messagerie WordPress personnalisé, 2e partie

Si vous êtes en train de rattraper cette série en particulier, nous sommes en train de construire notre propre système de messagerie personnalisé qui s’accroche à WordPress, ce qui nous permet de tirer parti de certaines des API existantes, mais aussi d’un peu plus. contrôle.

Du tutoriel précédent:

Mais tout comme nous avons examiné comment créer des pages d’administration personnalisées, il est également possible de mettre en place un système nous permettant de définir par programme nos propres messages personnalisés, leur type, et quand et où les afficher sur la page d’administration.. 

Bien qu'il ne soit pas nécessaire de lire la série précédente, je vous recommande vivement de lire le tutoriel précédent. Chacune de celles-ci repose sur les bases du didacticiel précédent (et nous continuerons de le faire pour le reste de la série)..

Cela dit, l'objectif de cette série est de présenter comment nous pouvons tirer parti de l'API WordPress et de la programmation orientée objet pour créer un système de messagerie personnalisé que nous pourrons utiliser tout au long des travaux que nous pourrions effectuer pour un client..

Mais avant de commencer, vous devez avoir quelques conditions préalables..

Avant de commencer

  • Lire l'article précédent.
  • Installer PHP 5.6.25 et MySQL 5.6.28.
  • Installer Apache ou Nginx.
  • Configurer WordPress 4.6.1.
  • Ayez votre IDE préféré ou votre éditeur à portée de main.

Si vous cherchez une solution tout-en-un, consultez MAMP, et si vous souhaitez savoir comment tout cela s’intègre, consultez ces articles..

Notre feuille de route

Si vous n'avez pas lu le didacticiel précédent, la feuille de route que nous avons établie pour ce didacticiel est la suivante:

  1. Dans ce tutoriel, nous allons jeter les bases du strict minimum de notre plugin et de ce dont nous avons besoin pour commencer..
  2. Dans la deuxième partie, nous allons pousser le plugin un peu plus loin en ajoutant une page d'administration WordPress très basique. Nous allons également appeler le hook personnalisé que nous utiliserons et nous le câblerons du côté serveur. Nous allons également commencer les travaux de base pour notre paramètres Messenger.
  3. Dans ce didacticiel, nous allons commencer à mettre en œuvre nos paramètres Messenger en ajoutant la prise en charge des erreurs et des messages de réussite, ainsi que des points relatifs à la sécurité..
  4. Nous finirons par tout lier, de le voir en action et de rendre public le plugin final que vous pourrez télécharger..

De toute évidence, nous avons accompli le numéro un. Donc, dans ce tutoriel, nous allons nous concentrer spécifiquement sur l’ajout d’une page d’administration de base et la mise en place d’un hook personnalisé qui nous permettra de tirer parti de notre messagerie personnalisée..

Retour au travail

Avec tout cela couvert, revenons au développement. Rappelez-vous qu’à ce stade, nous devrions avoir la base de ce plugin configurée pour pouvoir l'activer et naviguer vers Réglages et alors Tuts + Exemple de message personnalisé voir une page d'administration générique.

Si vous avez suivi jusqu'ici, le code de la page est extrêmement simple (et nous en verrons une photo plus loin dans le didacticiel), également:

Nous n'allons pas réellement afficher les options sur cette page. Au lieu de cela, nous allons utiliser cette page pour montrer comment se connecter à notre messagerie personnalisée..

Je le répète parce que c’est là que nous allons commencer à mettre en œuvre notre propre messager personnalisé..

Pour ce faire, nous devrons présenter les éléments suivants:

  1. un crochet que nous définissons
  2. une fonction qui est enregistrée avec ce hook
  3. afficher quelque chose lorsque cette fonction est activée

Définir un crochet personnalisé

Définir un crochet personnalisé semble beaucoup plus intimidant qu’il ne l’est réellement. La plupart d’entre nous savons comment appeler add_action et add_filter, mais comment pouvons-nous utiliser ces fonctions pour appeler notre posséder crochets?

Facile: nous utilisons do_action et définissons notre action que nous enregistrerons avec WordPress. Par exemple, prenons le code ci-dessus et, juste en dessous de la h1 tag, faisons ce qui suit:

Nous n'allons pas réellement afficher les options sur cette page. Au lieu de cela, nous allons utiliser cette page pour montrer comment se connecter à notre messagerie personnalisée..

Pas mal non? Nous devons maintenant enregistrer une fonction qui se déclenchera à chaque appel de ce hook. Avant de faire cela, cependant, je veux m'assurer que nous sommes tous sur la même page en ce qui concerne do_action fait vraiment.

Voici ce que dit le document du développeur do_action:

Cette fonction appelle toutes les fonctions attachées au crochet d’action. tag $. Il est possible de créer de nouveaux hooks d’action en appelant simplement cette fonction, en spécifiant le nom du nouveau hook à l’aide de la touche tag $ paramètre.

Si la définition n'est pas claire, sa mise en œuvre aidera peut-être. Alors regardons cela maintenant.

2. Enregistrer une fonction

Comme nous le faisons pour tout autre type de fonction, nous devons enregistrer une fonction qui se déclenchera chaque fois que notre tutsplus_settings_messages le crochet est tiré. Mais comme nous travaillons avec une programmation orientée objet, nous devrons concevoir une classe définissant cette fonction..

Et c’est là que notre messager de paramètres personnalisés entrera en jeu pour la première fois. Certes, nous ne ferons pas beaucoup de travail pour ajouter des messages personnalisés, mais nous volonté utiliser notre crochet personnalisé, et nous allons rendre quelque chose sur la page.

De plus, nous allons jeter les bases de la classe que nous améliorerons au cours des prochaines leçons. À partir de là, ajoutez le fichier class-settings-messenger.php au admin répertoire dans votre plugin (et ne vous inquiétez pas, tout cela sera disponible pour le téléchargement).

N'oubliez pas que nous n'utilisons pas d'espaces de nommage ni de chargeurs automatiques dans ce didacticiel (même si nous les avons déjà abordés). Notez que je vais fournir du code pour le init méthode momentanément. 

Pour l'instant, retournez au fichier d'amorçage du plugin, tutsplus-custom-message.php, et ajoutez le code suivant à la fonction principale:

init (); $ messenger = new Settings_Messenger (); $ messenger-> init (); 

Revenons maintenant à la fonction init dans le Settings_Messenger et le brancher à notre action personnalisée.

Notez dans le code ci-dessus, le premier argument que nous passons à add_action est le nom de notre crochet personnalisé. La seconde va être une méthode qui rendra un message sur la page d'administration. Nous ne l'avons pas encore écrit (donc si vous essayez d'exécuter ce code, vous obtiendrez une erreur).

Mais changeons ça.

3. Affichage d'un message personnalisé

Tout d’abord, créez une fonction dans le Settings_Messenger classe appelée message_affichage, et faisons simplement écho à une déclaration pour voir si elle apparaît dans la page personnalisée que nous avons créée:

Et lorsque vous exécutez le code, vous devriez voir quelque chose comme ça. Regardez de près sous le h1 tag et vous devriez voir la phrase que nous avons inclus ci-dessus.

Voici cependant le problème: le message que nous affichons ne correspond à aucun des marquages ​​utilisés par WordPress pour afficher des messages de réussite, des avertissements ou des erreurs.. 

Nous traiterons de cela en détail plus tard dans la série, mais poursuivons et affichons un message de réussite. Après tout, nous sommes venus si loin, non? Nous affichons notre propre message via un crochet personnalisé à l'aide d'une classe de messagerie que nous avons créée..

Nous pouvons procéder de différentes manières: nous pouvons utiliser un fichier modèle, nous pouvons utiliser un balisage dans la fonction et le désinfecter ici, ou nous pouvons inclure le fichier dans la fonction. Pour les besoins de ce tutoriel, je vais créer le balisage dans la fonction et utiliser wp_kses assainir le code.

Ce n’est pas normalement ce que je recommanderais, mais cela est une façon de le réaliser, et cela nous expose également à wp_kses, qui est une fonction que nous devrions tous utiliser lors du rendu des informations au navigateur.

Utilisez ce code:

 

Vous avez affiché avec succès un message de réussite personnalisé.

"; $ allowed_html = array ('div' => array ('class' => array (),), 'p' => array (),); echo wp_kses ($ html, $ allowed_html);

Et cela devrait entraîner la capture d'écran suivante:

Remarquez ici que le message persiste. Il n'y a pas de bouton de sauvegarde, il n'y a aucun moyen de masquer ce message et il n'y a aucun moyen de le modifier en dehors du code. Mais ce n'est pas grave, car ce n'est pas le but de cet exercice..

Quelques choses que je veux mentionner, cependant:

  • Les attributs de classe de l’élément div que vous voyez sont directement empruntés à WordPress. C’est pour que nous puissions hériter de ces styles.
  • Certains messages peuvent être rejetés. Nous allons couvrir cela dans un futur tutoriel.
  • le $ allowed_html tableau passé à wp_kses est ce qui fait que rien autres que les éléments et attributs spécifiés sont rendus. C'est un très bon, fort et propre moyen de désinfecter les données.

Et c'est tout ce qu'il y a à couvrir dans ce tutoriel particulier; Cependant, nous commençons à peine.

Conclusion

Au fur et à mesure que nous progressons au cours de cette série, nous allons examiner comment gérer les messages de réussite, les messages d'erreur et les messages d'avertissement et comment introduire la possibilité de rejeter des messages..

De plus, nous pourrons voir comment utiliser les entrées de l'utilisateur pour contrôler le type de message affiché.. 

Notez que je suis également toujours heureux de répondre aux questions via les commentaires. Vous pouvez également consulter mon blog et me suivre sur Twitter. Je parle habituellement de développement de logiciels dans WordPress et de sujets tangentiels, ainsi.

Jusqu'au prochain tutoriel, téléchargez les fichiers, étudiez le code et voyez comment cela s'exécute sur votre ordinateur local. Dans la prochaine partie, nous allons reprendre exactement où nous avons laissé.

Ressources

  • Création de pages d'administration personnalisées avec WordPress
  • Comment se lancer dans WordPress
  • MAMP
  • Création d'un système de messagerie WordPress personnalisé, première partie
  • add_action
  • do_action
  • wp_kses