Les bases de développement d’un plugin pour WordPress
Au travers de cet article nous allons simplement explorer les bases de la mise en place d’un plugin. Nous égrainerons une à une les principales étapes à suivre afin de s’assurer de la bonne implémentation d’une fonctionnalité de base, quelle qu’elle soit, au sein de la plateforme de gestion de contenu. Il est préférable de travailler sur une version locale spécialement dédiée à cette tâche. Vous trouverez les fichiers nécessaires sur https://github.com/Birnou/WP-Plugin-Base.
Mettre le plugin en place
Un plug in n’est ni plus ni moins qu’un simple fichier .php placé à la racine du dossier wp-content/plugins, ou d’un dossier placé à ce même endroit et contenant également un fichier .php. Seulement ce fichier .php, qu’il soit isolé ou placé dans un dossier, n’est pas anodin, il va contenir un entête spécifique composé d’un commentaire décrivant la nature de ce plug-in et donc informer par la même le gestionnaire d’extension de WordPress. Pensez à ouvrir le plugin hello.php, présent pour chaque installation de WordPress, bien qu’inutile pour beaucoup, il permet de comprendre comment structurer son fichier pour d’autres.
<?php /* Plugin Name:01 - Un Plugin quelcocnque Plugin URI: https://github.com/Birnou/WP-Plugin-Base Description: Travail de mise en place de plugin avec WordPress Author:Birnou Author URI: https://www.puce-et-media.com Version 0.0.1 License: MIT */ ?>
Enregistrez ce fichier sous plugin-01.php et placez le dans le dossier wp-content/plugins de votre installation WordPress puis allez dans la partie admin/extensions et vous devriez voir votre plug in , lire l’ensemble des informations le concernant et vous devriez même pouvoir l’activer.
Nous pourrions nous arrêter là sur la mise en place du plugin, mais pour des raisons de sécurité il est préférable d’ajouter une ligne de code qui va permettre d’intercepter tout appel en direct, et de l’extérieur, de votre plugin.
defined( 'ABSPATH' ) or die( 'Soyons simple!' );
S’assurer de la compatibilité
Bien que cela soit rarement rencontré, car une des règles de bases concernant la sécurité de WordPress est de s’assurer de bien mettre à jour vers les dernières versions. Mais bon, avec l’évolution rapide de WordPress, il se peut que votre plugin invoque des fonctions apparues dans une certaine version et ne puisse pas fonctionner avec des versions antérieures. Donc au lieu de créer des bogues inadaptés, il peut être intéressant de filtrer la version de WordPress et de ne pas autoriser l’installation du plugin si cela n’est pas approprié.
Il est vrai que le fichier du plugin semble isolé, mais il fait cependant partie de l’environnement global de développement et donc accède à l’ensemble des variables globales. Nous allons ainsi pouvoir récupérer la variable $wp_version qui contient la version de WordPress en cours d’utilisation, puis nous pourrons la comparer à la valeur attendue, afin de donner, ou non, accès au plugin. Renommer le fichier en plugin-02.php et ajoutez les quelques lignes qui suivent:
global $wp_version; if ( !version_compare($wp_version, "3.0", ">=")){ die ("Votre version de WP doit être mise à jour pour utiliser ce plugin."); }
Faites varier la valeur de référence (3.0) et essayez d’activer le plugin. Vous pouvez maintenant jouer avec quelques vérifications que ce soit avant de laisser libre accès à l’activation du plugin.
Surveillance activation / désactivation
L’API plugin de WordPress propose des Hooks, qui en fonction des contextes s’associent à des Filtres ou à des Actions. Je vous propose que nous voyons les Actions et Filtres au cours de l’article Ajouter des Filtres et Actions à son plugin. Pour l’instant, et en ce qui nous concerne, nous allons nous focaliser sur un troisième aspect des hooks qui ne concerne justement que le processus d’action ou de désactivation du plugin, et cas extrême sa désinstallation.
Il faut voir les hook comme des écouteurs spécifiques et propres à WordPress, qui peuvent donc écouter divers ‘actions’ opérant lors de la génération des contenus. En ce sens, il existe donc un écouteur surveillant l’activation, la désactivation et la désinstallation du plugin. Il s’emploi et se met en place comme tout écouteur, c’est à dire en passant le fichier de base du plugin et la fonction à invoquer, au travers des fonction dédiées register_activation_hook(), register_deactivation_hook() et register_uninstall_hook():
function activation_du_plugin(){ write_log("Pour informations: il vient d'y avoir activation."); } register_activation_hook(__FILE__, "activation_du_plugin");
Lors de l’activation, la fonction activation_du_plugin() sera donc invoquée et réalisera les diverses tâches qui lui sont affectées. Dans notre cas, une ligne générée dans le fichier de log. Ajoutez son pendant pour la désactivation et la désinstallation et vérifiez ce qui a été généré dans le fichier de log.
En général la fonction de désinstallation permet de nettoyer les éventuels ajouts qui aurait été fait (tables, options, etc…) et également sauvegarder ces informations au travers d’un fichier de transfert dans l’éventualité d’une réinstallation ultérieure.
1 réponse
[…] la forme d’un plugin. Si besoin, n’hésitez pas de vous rapprocher de l’article Les bases de développement d’un plugin pour WordPress. Sinon, passons directement au contenu de cet article et voyons comment mettre le mode de débogage […]