Comment construire un plugin WordPress pour identifier les anciens messages

Lors de la lecture d'articles sur des sites Web, j'ai constaté que lorsqu'un message a plus de quatre ans, une notification l'informant de son caractère est affichée sur certains sites Web. Une notification similaire est également trouvée dans le répertoire du plugin WordPress lorsqu'un plugin n'a pas été mis à jour depuis plus de deux ans.

Dans cet article, nous allons construire un plugin qui affiche une notification similaire à la fin d'une publication. X années vieux où "X"un entier qui indique le nombre d’années qui définit l’ancien.
Le plugin vous donnera la possibilité de spécifier votre propre phrase de notification personnalisée et le nombre d'années avant qu'une publication ne soit considérée comme ancienne.

Ce plugin sera construit en utilisant une programmation orientée objet dans le but de mieux organiser le code et de respecter le principe DRY. En tant que tel, une certaine expérience de la programmation orientée objet est nécessaire pour comprendre ce didacticiel..

Planifier le plugin

Le plugin sera composé de deux protégé propriétés de classe et dix méthodes. Les propriétés sont décrites ci-dessous.

  • $ _notification stocke le message de notification extrait de la base de données précédemment défini par l'utilisateur du plugin.
  • $ _ansstocke le nombre d'années extraites de la base de données.

J'expliquerai le rôle de chaque méthode (connues sous le nom de fonctions dans la programmation procédurale) et leur code respectif au fur et à mesure de notre parcours..

Coder le plugin

Commençons par inclure l’en-tête du plugin, créons le classe et définir les propriétés:


Lors de l’écriture de plugins WordPress dans OOP, tous les points d’accès au filtre et à l’action peuvent être définis dans le constructeur (nommé __construction). La méthode constructeur de notre plugin comportera cinq fonctions: trois crochets d’action, un crochet de filtre et un register_activation_hook une fonction.

function __construct () // Initialisation des options de configuration lors de l'activation register_activation_hook (__FILE__, array ($ this, 'aop_settings_default_values')); // register Menu add_action ('admin_menu', array ($ this, 'aop_settings_menu')); // raccorde la section et le champ du plugin à admin_init add_action ('admin_init', array ($ this, 'pluginOption')); // ajoute la feuille de style du plugin à l'en-tête add_action ('wp_head', array ($ this, 'stylesheet')); // affiche la notification ci-dessus après add_filter ('the_content', array ($ this, 'displayNotification')); 
  • le register_activation_hook appelle la méthode pour définir les paramètres par défaut du plugin lors de l'activation.
  • Les trois prochaines add_action les fonctions appellent les fonctions de raccordement pour enregistrer le menu du plugin, relient la section du plugin et le admin_init et ajoutez la feuille de style du plugin à l'en-tête, respectivement.
  • le add_filter appeler le displayNotification méthode qui affiche la notification quand une publication est ancienne.

En regardant le __construction méthode ci-dessus, le register_activation_hook la fonction appelle le aop_settings_default_values méthode pour définir les paramètres du plugin par défaut.

fonction publique aop_settings_default_values ​​() $ aop_plugin_options = array ('notification' => 'Ce message n \' a pas été mis à jour depuis plus de 2 ans. ',' years '=> 2); update_option ('apo_alert_old_post', $ aop_plugin_options); 

le aop_settings_menu Cette méthode crée le sous-menu du plug-in sous le menu existant. Réglages menu.

fonction publique aop_settings_menu () add_options_page ('Le message d'alerte est ancien,' Le message d'alerte est ancien ',' manage_options ',' aop-alert-post-old ', array ($ this,' alert_post_old_function ')); 

Le troisième argument passé à la add_options_page fonction ci-dessus est la alert_post_old_function méthode qui affiche le contenu de la page des paramètres du plugin.

fonction publique alert_post_old_function () echo '
'; screen_icon (); écho '

Le message d'alerte est vieux

'; écho '
'; do_settings_sections ('aop-alert-post-old'); settings_fields ('aop_settings_group'); bouton de soumission();

Pour ajouter les paramètres du plugin, nous allons utiliser l’API de paramètres WordPress pour ajouter les formulaires de paramètres..

Tout d'abord, nous définissons la section, ajoutons les champs de paramètres et enregistrons enfin les paramètres. Tout cela se fera dans le pluginOption méthode qui a été accrochée à la admin_init action plus tôt dans la __construction méthode.

fonction publique pluginOption () add_settings_section ('aop_settings_section', 'Options du plugin', null, 'aop-alert-post-old'); add_settings_field ('notification', '', array ($ this,' aop_notification '),' aop-alert-post-old ',' aop_settings_section '); add_settings_field ('years', '', array ($ this,' aop_years '),' aop-alert-post-old ',' aop_settings_section '); register_setting ('aop_settings_group', 'apo_alert_old_post'); 

La méthode de rappel du champ de paramètres: aop_notification et aop_ans qui remplit le champ avec les entrées de formulaire souhaitées sont les suivantes.

fonction publique aop_notification () $ this-> databaseValues ​​(); écho ''; 
fonction publique aop_years () $ this-> databaseValues ​​(); écho '';

Nous allons récupérer les paramètres de notification et d'année du plug-in et les stocker dans les deux propriétés protégées: $ _notification et $ _ans parce qu'ils nous seront utiles pour déterminer si un message a dépassé l'âge défini et pour afficher le message de notification.

fonction publique databaseValues ​​() $ options = get_option ('apo_alert_old_post'); $ this -> _ notification = $ options ['notification']; $ this -> _ years = $ options ['years']; 

Le code CSS utilisé dans le style de la notification sera dans la feuille de style méthode.

fonction publique stylesheet () echo <<   HTML; 

Enfin, la fonction qui affiche la notification au-dessus du contenu de publication jugé ancien est la suivante:

fonction publique displayNotification ($ content) global $ post; $ this-> databaseValues ​​(); // récupère les paramètres year $ setYear = $ this -> _ years; // récupère le texte de notification $ notification = $ this -> _ notification; // calcule post-âge $ année = date ('Y') - get_post_time ('Y', vrai, $ post-> ID); // affiche la notification uniquement à la publication if (is_single ()): if ($ year> $ setYear) echo '
'; écho ' ! '; écho "$ notification"; écho '
'; fin si; retourne $ contenu;

Parlons du code ci-dessus: Premièrement, nous récupérons le nombre d'années qui déterminent le moment où une publication est ancienne, soustrayez l'année de publication de la publication de l'année en cours. Si le résultat est supérieur à l'année qui définit l'ancien, la notification indiquant que le message est ancien est affichée..

Enfin, nous avons fini de coder la classe du plugin. Pour mettre la classe au travail, nous devons l’instancier comme ceci:

nouvel AlertOldPost;

Conclusion

Dans cet article, nous avons appris à calculer l'âge d'un message, à afficher une notification lorsqu'un message est considéré comme ancien, et ce, à l'aide de pratiques de programmation orientées objet..

Je vous exhorte à consulter le code pour acquérir une connaissance approfondie de son fonctionnement. Vos questions, commentaires et contributions sont les bienvenues.