Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress Plugins
Code

Création d'un système de messagerie WordPress personnalisé, partie 2

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Creating a Custom WordPress Messaging System.
Creating a Custom WordPress Messaging System, Part 1
Creating a Custom WordPress Messaging System, Part 3

French (Français) translation by Soule Nassurdine (you can also view the original English article)

Si vous venez de nous rejoindre dans cette série particulière, nous sommes dans la procédure de création de notre propre système de messagerie qui se lie à WordPress, nous permettant de tirer parti de certaines des APIs existant, mais nous donnant un peu plus de control.

Du tutoriel précédent :

Mais tout comme nous avons examiné la façon de créer des pages d'administration personnalisées, il est également possible de mettre en place un système qui nous permet de programmer nos propres messages personnalisés, leur type, et quand et où les afficher sur la page d'administration.

Bien qu'il ne soit pas requis de lire la série qui précède celle-ci, Je recommande fortement de lire le tutoriel précèdent. Chacun de ceux-ci s'appuie sur les fondements du tutoriel précédent (et nous continuerons ainsi pour le reste de la série).

Cela étant dit, le but de cette série est de donner une introduction sur la manière de tirer parti de l'API WordPress et la programmation oriente objet pour créer un système de messagerie personnalisé que l'on peut utiliser au cours d'un travail que l'on pourrait faire pour un client.

Mais avant que l'on commence, Il y a quelques prérequis que vous devriez avoir en place.

Avant que vous ne commenciez

  • Lisez l'article précédent.
  • Installez PHP 5.6.25 et MySQL 5.6.28.
  • Installez Apache ou Nginx.
  • Installez WordPress 4.6.1
  • Ayez votre IDE ou éditeur favori prêt.

Si vous cherchez une solution tout-en-un, essayez MAMP, et si vous êtes intéressé de savoir comment le tout s'assemble, alors examiner ces articles.

Notre Feuille de route

Dans l'éventualité où vous n'avez pas lu le tutoriel précédent, la feuille de route que nous avons conçue pour ce tutoriel est comme suit :

  1. Dans ce tutoriel, nous allons établir les fondements pour le strict minimum de notre plugin et ce dont nous avons besoin pour commencer.
  2. Dans la deuxième partie, nous allons mener le plugin un peu plus loin en y ajoutant une page d'administration WordPress très simple. Nous ferons aussi un appel vers un hook personnalisé que nous allons utiliser, et nous lierons le tout côté serveur. Nous commencerons aussi les fondations de notre Messagerie Réglages.
  3. Dans ce tutorial, nous commencerons à implémenter notre Messagerie Réglages en ajoutant un support des messages d'erreur et de réussite aussi bien que nous couvrirons quelques points de sécurité.
  4. Nous finirons par assembler le tout, le voir en action, et rendre le plugin publiquement disponible en téléchargement.

Evidemment, nous avons accompli l'étape une. Donc dans ce tutoriel, nous nous concentrerons spécialement sur l'ajout d'une simple page d'administration et mettre en place un hook personnalisée qui nous permettra de tirer parti de notre messagerie personnalisée.

Retour au travail

Avec tout ça de couvert, revenons au développement. Souvenez-vous qu’à ce point, nous devrions avoir les fondations de ce plugin établis de telle sorte que nous somme capable de l'activer et de naviguez vers Réglages et ensuite Tuts+ Custom Message Example pour voir une page d'administration générique.

Si vous avez suivi jusqu'alors, le code de la page est extrêmement simple (et nous en verrons une capture d'écran de celle-ci plus tard dans ce tutoriel), aussi :

Je répète ça car c'est ici que nous allons commencer à implémenter notre messagerie personnalisée.

Pour ce faire, nous aurons besoin d'introduire ce qui suit :

  1. un hook que nous définissons
  2. une fonction qui est enregistré avec le hook
  3. afficher quelque chose quand cette fonction est lancée.

Définir un hook personnalisé

Définir un hook personnalisé a l'air plus intimidant que ça l'est réellement. La plupart d'entre nous se sont familiarise avec les appels de add_action et add_filter, mais comment pouvons-nous utiliser ses fonctions pour faire un appel de nos propres hooks ?

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

Pas mal, n'est-ce pas ? Maintenant nous devons enregistrer une fonction qui s'exécutera chaque fois que ce hook est appelé. Avant de faire ça, par contre, j'aimerai être certain qu'on est tous au même niveau en ce qui concerne ce que do_action fait vraiment.

Voici ce que la documentation développeur dit au sujet de do_action :

Cette fonction invoque toutes les fonctions attachées au hook action $tag. Il est possible de créer de nouveaux hooks action en appelant simplement cette fonction, en spécifiant le nom du nouveau hook avec le paramètre $tag.

Si cette définition n'est pas claire, peut être que son implémentation aidera. Donc jetons y un coup d'œil maintenant.

2.Enregister une fonction

Comme on le ferait avec tout autre type de fonction, nous avons besoin d'enregistrer une fonction qui va se lancer chaque fois que notre hook tutsplus_settings_messages va s'exécuter. Mais comme nous travaillons sur de la programmation oriente objet, nous aurons besoin de concevoir une classe qui définit cette fonction.

Et c'est ici que notre messagerie personnalisée de réglages va jouer son rôle pour la première fois. Certes, nous ne ferons pas grand-chose en terme d'ajout de messages personnalisés, mais nous utiliserons notre hook personnalisé, et nous afficherons quelque chose sur la page.

Par ailleurs, nous mettrons en place les fondations de la classe que nous allons améliorer dans les leçons à venir. À partir d'ici, ajouter le fichier class-settings-messenger.php au répertoire admin dans votre plugin (et ne vous en faites pas, tout ça sera disponible en téléchargement).

Souvenez-vous que nous ne n'utilisons pas de namespaces ou d'autoloaders dans ce tutoriel (bien que nous les avons déjà couverts). Notez que je fournirai un code pour la méthode init momentanément.

Pour l'instant, renvoyez le fichier d'amorce du plugin, tutsplus-custom-message.php, et ajoutez le code suivant dans la fonction principale :

Maintenant revisitons la fonction init dans le Settings_Messenger et lions là à notre action personnalisée.

Notez dans le code plus haut, le premier argument que nous passons à add_action est le nom de notre hook personnalisé. Le second sera une méthode qui affichera un message sur la page d'administration. Nous ne l'avons juste pas encore écrite (donc si vous tentez d'exécuter ce code, vous obtiendrez une erreur).

Mais changeons ça.

3.Afficher un message personnalisé.

Premièrement, créez une fonction dans la classe Settings_Messenger nommée display_message, et émettons un echo d'une déclaration pour voir si elle apparait dans la page personnalisée que nous avons créée :

Et quand vous exécutez le code, vous êtes censé voir quelque chose comme ça. Regardez de plus près sous la balise h1 et vous devriez voir la phrase que nous avons inclue en haut.

An example of the message we want to display

Voici le problème, par contre : Le message que nous affichons ne correspond à aucun balisage que WordPress utilise pour montrer un message de réussite, d'avertissement ou d'erreur.

Nous allons couvrir ça en détail plus tard dans la série, mais continuons par afficher un message de réussite. Après tout, nous sommes parvenues jusqu'ici, pas vrai ? Nous affichons notre message à travers un hook personnalisé en utilisant une classe messagerie que nous avons créée.

Il y a de nombreuse façon de faire ça : Nous pouvons utiliser un fichier modèle, nous pouvons utiliser un balisage dans la fonction et nettoyer le code ou nous pouvons inclure le fichier dans la fonction. Pour ce tutoriel, je vais créer le balisage dans la fonction et utilise wp_kses pour nettoyer le code.

Ce n'est pas ce que je recommanderai normalement, mais c'est une manière possible de l'accomplir, et ça nous expose aussi a wp_kses qui est une fonction que nous devons tous utiliser lorsque nous affichons des informations au navigateur.

Utilisez ce code :

Et ça devrai aboutir à cette capture d’écran :

An example of the success message

Notez ici que le message persiste. Il n'y a pas de bouton de sauvegarde, il n'y a pas moyen de cacher ce message, et il n'y a pas moyen de changer le message hors du code. Mais ce n'est pas grave, parce que ce n'est pas le sujet de cet exercice.

Quelques choses que j'aimerai mentionné, par contre :

  • Les attributs class dans l'élément div que vous voyez sont empruntés directement à WordPress. C'est pour que l'on puisse hériter de ces styles.
  • Certains messages peuvent être rejetés. Nous couvrirons ça dans un tutoriel à venir.
  • Le tableau $allowed_html passé dans wp_kses est ce qui rend certain que rien d'autre que les éléments et attributs spécifiés sont affichés. C'est une façon forte, bonne et propre de nettoyer les données.

Voilà tout ce qu'il y a à couvrir pour ce tutoriel ; cependant, nous ne faisons que commencer.

Conclusion

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

Par ailleurs, nous pourrons voir comment utiliser l'entrée de l'utilisateur pour contrôler le type de message affiché.

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

Jusqu'au prochain tutoriel, téléchargez les fichiers, étudiez le code et voyez comment cela fonctionne sur votre machine locale. Dans la prochaine partie, nous allons reprendre exactement où nous en étions.

Ressources

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.