Hello, petit article rapide pour vous présenter la création d’un plugin wordpress. Cet article vous sera utile si vous commencez à développer sous wordpress, dans le cas contraire, vous pouvez quand même lire et me donnez vos retours.

Architecture de base du plugin

Pour commencer, il vous suffit de créer un dossier pour votre plugin dans :

wp-content/plugins/{nomplugin} ( dans mon cas kj_plugin) 

Dans ce dossier on aura besoin obligatoirement d’un fichier php du même nom que le plugin (kj_plugin.php)

La première chose que nous devons déclarer dans ce fichier sont les informations du plugin :

 <?php
/*
 Plugin Name: Kj Plugin
 Plugin URI: kevinjaniky.com/kj_plugin
 Description: Mon premier plugin
 Version: 1.0.0
 Author: Kevin JANIKY
 Author URI: http://kevinjaniky.com/
 License: GPL3
 Text Domain: kj_plugin
 */

Une fois que vous aurez modifié les valeurs en les remplaçants par les vôtres, direction le BackOffice wordpress, vous verrez alors apparaitre dans les extensions votre plugin.

Une fois terminée vous pouvez écrire votre code, wordpress ne vous oblige pas à adopter une architecture précise.

Architecture avancée

Dans mon cas, je n’aime pas vraiment les choses qui ne sont pas ordonnées, alors j’ai choisi de m’inspirer des architectures les plus répandus :

Mon plugin se compose du fichier principal qui permettra simplement de faire des requires.

Je choisi également de scinder mon code en deux grandes parties : Le public et l’admin.

L’admin contiendra tout le code lié au backoffice, ajout de page, de lien de menu, gestion de méta données etc.

Le dossier public sera utilisé pour l’affichage en front ou le traitement de la donnée, mais toujours front.

Chaque dossier possédera une classe ( ou du procédurale selon vos envies), un fichier css, un fichier JS et un dossier templates pour les vues.

/kj_plugin
   kj_plugin.php

   /admin
     kj_plugin_admin.php
     kj_plugin_admin.css
     kj_plugin_admin.js
     /templates

   /public
     kj_plugin_public.php
     kj_plugin_public.css
     kj_plugin_public.js   
     /templates

Bien évidemment, à vous d’adapter selon vos méthodes.

(Dés)Activé

Lors de l’activation ou de la désactivation du plugin, on a parfois envie / besoin d’effectuer certaines taches. Par exemple, la création d’une table en base de données, la suppression d’information ou encore l’import d’un flux etc..

Pour effectuer ces actions wordpress met en place des hooks.

register_activation_hook( __FILE__, 'activate_kj_plugin' );
register_deactivation_hook( __FILE__, 'deactivate_kj_plugin' );

Une fois ces fonctions définies libre à vous de faire votre action.

Retour d’expèriences

J’ai longtemps été anti CMS. J’ai passé énormément de temps à développer sous laravel, symfony ou simplement en objet /procédurale.

Le premier CMS que j’ai découvert a été Drupal, j’ai pu développer plusieurs modules sous les version 7 et 8. Il y a environ 2 ans, j’ai décidé de démarrer wordpress pour sa simplicité.

Pour être franc, il y a certaines choses que je préfère faire avec un framework ( plus rapide , plus performant et plus simple surtout ). En revanche, si je dois créer un site vitrine par exemple, je favoriserais wordpress. En effet, il est très simple de créer un nouveau fonctionnement, de modifier un thème, d’intégrer et de developper sur mesure. Je pense qu’il n’y a pas de CMS / de solution miracle pour le developpement, Il s’agira simplement de vos goûts donc la meilleure chose à faire est d’essayer et de se faire son propre avis.

En attendant, je vous souhaite un bon développement. N’hésitez pas à me faire un retour. A bientôt.

Photo by Fikret tozak on Unsplash

D’autres articles lié au développement :

Show CommentsClose Comments

Leave a comment