La structure d’un plugin pour WordPress

La structure d’un plugin pour WordPress est différente d’un développeur à l’autre, mais quelques règles sont à respecter notamment pour éviter les conflits dans les noms de fonctions et de variables. Un certain formaliste est également à prendre en compte pour que le plugin apparaisse correctement dans l’interface d’administration (auteur, ..).

Ce petit article n’a pas la vocation de remplacer la documentation plutôt extrêmement bien fournie sur l’écriture d’un plugin WordPress, mais énumères quelques petites choses qui évitent de faire des erreurs lorsque l’on commence à écrire un plugin pour WordPress.

L’arborescence

L’ensemble des plugins est installé dans le répertoire wp-content/plugins

Si votre plugin est simpliste et ne contient qu’un fichier PHP vous pouvez éventuellement le placer directement dans ce répertoire, par contre s’il contient des images, codes javascript ou plusieurs fichier PHP, vous devez créer un nouveau répertoire contenant ces fichiers. Ce répertoire doit avoir le nom de votre plugin, sans espaces ni caractères spéciaux.

Vous pouvez ensuite créer une arborescence dans ce répertoire pour séparer les types de fichiers. Par exemple : « images », « php », « js », …  Le fichier principal du plugin qui doit être à la racine de ce répertoire et doit lui aussi avoir le même nom que votre plugin. La documentation officielle de WordPress recommande également de placer un fichier readme.txt dans le répertoire.

Le header

Le début du fichier principal doit respecter un certain formalisme afin d’être correctement reconnu :

<?php
/*
Plugin Name: Le nom de votre plugin
Plugin URI: L'url de la page de présentation de votre plugin
Version: La version actuelle du plugin
Author: Votre nom (éventuellement sous la forme d'un lien hypertexte)
Description: A quoi sert le plugin ?
*/

Créer une classe

Sans pour autant être obligé de faire du tout objet, il est recommandé de créer une classe qui va contenir le code. Cela vous met tout simplement à l’abri de tout conflit dans les noms des fonctions et des variables.