Comment créer un plugin WordPress
Créer un plugin WordPress ne demande qu'un dossier et un fichier PHP avec un en-tête de quelques lignes, placés dans wp-content/plugins. C'est le bon endroit pour ranger vos petits bouts de code (fonctions, shortcodes, réglages) plutôt que dans le fichier functions.php du thème. Cette page montre le squelette minimal, les règles de base à respecter et les ressources officielles pour aller plus loin.
Plugin ou functions.php du thème ?
Beaucoup de tutoriels proposent de coller du code dans le fichier functions.php du thème. Cela fonctionne, mais ce code est lié au thème : si vous changez de thème, il disparaît, et si vous modifiez directement le thème parent, une mise à jour l'écrase (c'est tout l'intérêt d'un thème enfant).
La règle simple :
ce qui concerne l'apparence (gabarits, styles propres au thème) va dans le thème enfant ;
ce qui concerne le fonctionnement du site (un shortcode, un type de contenu, une redirection, une modification de l'administration) va dans un plugin, qui survit à un changement de thème.
Pour quelques lignes seulement, un plugin de gestion de snippets comme WPCode évite même de créer des fichiers. Dès que le code grossit ou doit être versionné, un vrai plugin est plus propre.
Le plugin minimal : un dossier, un fichier, un en-tête
D'après le manuel officiel des plugins, la démarche tient en trois étapes :
Dans
wp-content/plugins, créez un dossier au nom de votre plugin, par exemplemonsite-ajouts.Dans ce dossier, créez un fichier PHP du même nom :
monsite-ajouts.php.Placez en haut de ce fichier un commentaire d'en-tête. Seul le champ
Plugin Nameest obligatoire.
Voici un exemple complet et fonctionnel :
<?php
/**
* Plugin Name: Mon site - ajouts
* Description: Petits ajouts de fonctionnement pour mon site.
* Version: 1.0.0
* Requires at least: 6.5
* Requires PHP: 7.4
* Author: Votre nom
* License: GPL v2 or later
* Text Domain: monsite-ajouts
*/
// Empêche l'accès direct au fichier.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Action : ajoute une mention dans le pied de page.
function monsite_mention_pied_de_page() {
echo '<p class="monsite-mention">Merci de votre visite.</p>';
}
add_action( 'wp_footer', 'monsite_mention_pied_de_page' );
// Filtre : raccourcit les extraits automatiques à 30 mots.
function monsite_longueur_extrait( $longueur ) {
return 30;
}
add_filter( 'excerpt_length', 'monsite_longueur_extrait' );Enregistrez, puis allez dans Extensions dans l'administration : votre plugin apparaît dans la liste, avec son nom et sa description. Il ne reste qu'à l'activer.
Comprendre les hooks : actions et filtres
Un plugin ne modifie jamais les fichiers de WordPress : il se branche sur des points d'accroche, les hooks, prévus par WordPress.
Une action permet d'exécuter votre code à un moment précis (
wp_footer: au moment d'afficher le pied de page ;init: au chargement de WordPress). On l'utilise avecadd_action().Un filtre permet de modifier une valeur avant son utilisation (ici, la longueur des extraits). On l'utilise avec
add_filter(), et la fonction doit toujours retourner une valeur.
La quasi-totalité du développement de plugins consiste à choisir le bon hook et à y accrocher une fonction. Les shortcodes reposent sur le même principe, avec la fonction add_shortcode().
Les bonnes pratiques à adopter dès le début
Le manuel officiel insiste sur quelques règles simples :
Préfixez tout : fonctions, classes, options, constantes. Le manuel recommande un préfixe d'au moins 4 lettres, idéalement 5, propre à votre plugin (
monsite_dans l'exemple), pour éviter les conflits avec d'autres plugins.Bloquez l'accès direct aux fichiers avec la vérification de
ABSPATHmontrée plus haut.Un seul fichier porte l'en-tête dans le dossier du plugin ; les autres fichiers sont inclus depuis celui-ci.
Utilisez les API de WordPress (Options, HTTP, Plugin) plutôt que de tout réécrire.
Prévoyez l'installation et la désinstallation : la fonction
register_activation_hook()sert à préparer le terrain (options par défaut, par exemple), et un fichieruninstall.phpà nettoyer ce que le plugin a créé.Développez avec le mode débogage activé (
WP_DEBUGàtruedanswp-config.php) sur un site de test, jamais directement sur le site en ligne.
Le champ d'en-tête Requires Plugins, disponible depuis WordPress 6.5, permet aussi de déclarer qu'un plugin a besoin d'un autre plugin pour fonctionner (par exemple une extension WooCommerce).
Les champs d'en-tête utiles
Champ | Rôle |
|---|---|
| Nom affiché dans la liste des extensions (obligatoire) |
| Courte description affichée sous le nom |
| Numéro de version de votre plugin |
| Version minimale de WordPress |
| Version minimale de PHP |
| Auteur du plugin |
| Licence (compatible GPLv2 ou ultérieure pour diffuser le plugin) |
| Identifiant utilisé pour les traductions |
| Plugins dont le vôtre dépend, séparés par des virgules |
Où apprendre la suite
Le manuel officiel des plugins (Plugin Handbook) : la référence, en anglais, des bases jusqu'aux pages de réglages, aux types de contenu personnalisés et à la sécurité.
Les blocs : un plugin peut aussi ajouter des blocs à l'éditeur. L'outil officiel
@wordpress/create-blockgénère le squelette complet ; voir créer un bloc personnalisé Gutenberg.Les interfaces d'administration modernes : ce tutoriel du blog des développeurs WordPress explique comment utiliser des composants React pour des pages de plugins.
La formation WordPress : la leçon Comment créer un plugin WordPress ? du module 10 montre la démarche en vidéo.
Pour choisir un plugin existant avant de coder le vôtre, la rubrique Plugins WordPress présente des comparatifs par besoin.
Commentaires
Pas encore de commentaire. Soyez le premier !