Comment créer un plugin WordPress ? Guide complet pour débutants

Comment créer un plugin WordPress ? Comment créer un plugin WordPress ? image
Rate this post

Pourquoi créer son propre plugin WordPress ?

Vous avez besoin d’une fonctionnalité spécifique que les plugins existants ne proposent pas ? Créer votre propre plugin WordPress vous offre un contrôle total, une meilleure sécurité et l’absence de code superflu. Ce guide vous montre les étapes essentielles pour concevoir un plugin fiable, de la structure de base jusqu’à la mise en ligne.

Prérequis avant de commencer

Avant de plonger dans le code, assurez-vous de disposer des éléments suivants :

  • Un environnement de développement local : utilisez Local, XAMPP ou Docker pour tester votre plugin sans affecter un site en production.
  • Des connaissances de base en PHP : comprendre les fonctions, les classes et les hooks WordPress (actions et filtres).
  • Un éditeur de code : VS Code, PhpStorm ou tout éditeur avec coloration syntaxique.
  • Un site WordPress de test : installez WordPress en local pour vos essais.

Structure d’un plugin WordPress

Un plugin WordPress est simplement un dossier contenant au moins un fichier PHP avec un en-tête standard. Voici la structure minimale :

  • /mon-plugin/ (dossier racine)
  • /mon-plugin/mon-plugin.php (fichier principal)
  • /mon-plugin/readme.txt (facultatif mais recommandé pour le dépôt WordPress)

L’en-tête du fichier principal

Le fichier mon-plugin.php doit commencer par un bloc de commentaire contenant les métadonnées du plugin. Exemple :

<?php
/**
 * Nom du plugin : Mon Plugin
 * Description : Ajoute une fonctionnalité géniale.
 * Version : 1.0.0
 * Author : Votre Nom
 * License : GPL2
 */

Cet en-tête permet à WordPress d’identifier votre plugin et de l’afficher dans la liste des plugins installés.

Créer un plugin simple étape par étape

Nous allons créer un plugin qui ajoute un message de bienvenue personnalisé dans l’administration. Suivez ces étapes :

Étape 1 : Créer le dossier et le fichier principal

Dans wp-content/plugins/, créez un dossier nommé mon-premier-plugin. À l’intérieur, créez un fichier mon-premier-plugin.php avec l’en-tête ci-dessus.

Étape 2 : Ajouter une action simple

Utilisez le hook admin_notices pour afficher un message :

function mpp_afficher_message_bienvenue() {
    echo '<div class="notice notice-success is-dismissible"><p>Bienvenue dans votre nouveau plugin !</p></div>';
}
add_action( 'admin_notices', 'mpp_afficher_message_bienvenue' );

Activez le plugin depuis l’administration. Vous devriez voir le message sur chaque page d’admin.

Étape 3 : Ajouter un shortcode

Les shortcodes permettent d’afficher du contenu dynamique dans les articles. Ajoutez ce code :

function mpp_shortcode_bienvenue() {
    return '<p>Merci d'utiliser notre plugin !</p>';
}
add_shortcode( 'bienvenue', 'mpp_shortcode_bienvenue' );

Désormais, le shortcode [bienvenue] affiche le message dans vos pages.

Meilleures pratiques pour un plugin professionnel

Un plugin fiable respecte certains standards. Voici les points clés :

  • Préfixer toutes les fonctions et classes : utilisez un préfixe unique (par exemple mpp_) pour éviter les conflits avec d’autres plugins.
  • Utiliser les classes PHP : encapsulez votre code dans une classe pour une meilleure organisation.
  • Échapper les sorties : utilisez esc_html(), esc_attr() pour la sécurité.
  • Vérifier les capacités utilisateur : avant d’exécuter des actions sensibles, vérifiez que l’utilisateur a les droits nécessaires avec current_user_can().
  • Utiliser les options WordPress : stockez les réglages via get_option() et update_option().

Exemple de classe de base

class MonPlugin {
    public function __construct() {
        add_action( 'admin_notices', array( $this, 'afficher_message' ) );
        add_shortcode( 'bienvenue', array( $this, 'shortcode_bienvenue' ) );
    }

    public function afficher_message() {
        echo '<div class="notice notice-success"><p>Plugin activé !</p></div>';
    }

    public function shortcode_bienvenue() {
        return '<p>Bienvenue sur notre site !</p>';
    }
}
new MonPlugin();

Intégrer des fichiers CSS et JavaScript

Pour ajouter des styles ou des scripts, utilisez les hooks appropriés :

  • Pour l’administration : admin_enqueue_scripts
  • Pour le front-end : wp_enqueue_scripts

Exemple pour charger un fichier CSS dans l’admin :

function mpp_charger_styles_admin() {
    wp_enqueue_style( 'mpp-admin-style', plugin_dir_url( __FILE__ ) . 'css/admin.css' );
}
add_action( 'admin_enqueue_scripts', 'mpp_charger_styles_admin' );

Placez vos fichiers dans un sous-dossier css/ ou js/ à l’intérieur de votre plugin.

Sécuriser votre plugin

La sécurité est cruciale. Voici les bonnes pratiques :

  • Validation des données : utilisez sanitize_text_field(), intval() avant de traiter les entrées utilisateur.
  • Nonces : protégez vos formulaires et actions AJAX avec wp_nonce_field() et check_admin_referer().
  • Échappement des sorties : utilisez esc_html(), esc_url().
  • Prévention des injections SQL : utilisez $wpdb->prepare() pour toutes les requêtes.

Créer une page de réglages

Pour que votre plugin soit configurable, ajoutez une page de réglages dans l’administration. Exemple :

function mpp_ajouter_menu() {
    add_options_page( 'Réglages Mon Plugin', 'Mon Plugin', 'manage_options', 'mon-plugin', 'mpp_page_reglages' );
}
add_action( 'admin_menu', 'mpp_ajouter_menu' );

function mpp_page_reglages() {
    ?>
    <div class="wrap">
        <h1>Réglages de Mon Plugin</h1>
        <form method="post" action="options.php">
            <?php settings_fields( 'mpp_options' ); ?>
            <?php do_settings_sections( 'mon-plugin' ); ?>
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}

Ensuite, enregistrez les réglages avec register_setting() et ajoutez des champs avec add_settings_field().

Internationalisation (i18n) de votre plugin

Pour rendre votre plugin accessible en plusieurs langues :

  • Utilisez __(), _e() et load_plugin_textdomain().
  • Créez un dossier languages/ avec les fichiers .po et .mo.
  • Déclarez le textdomain dans l’en-tête du plugin : Text Domain: mon-plugin.

Tests et débogage

Avant de publier, testez votre plugin :

  • Activez le mode débogage dans wp-config.php : define('WP_DEBUG', true);
  • Testez avec différents thèmes et plugins pour détecter les conflits.
  • Utilisez des outils comme Query Monitor pour analyser les performances.

Déployer votre plugin

Deux options principales :

  • Dépôt WordPress officiel : soumettez votre plugin après avoir respecté les guidelines (licence GPL, readme.txt, etc.).
  • Distribution privée : vendez ou distribuez via votre site, en utilisant un système de mise à jour personnalisé (par exemple avec GitHub Updater).

Erreurs courantes à éviter

  • Ne pas préfixer les fonctions : risque de conflit avec d’autres plugins.
  • Ignorer la sécurité : les failles XSS et SQL sont fréquentes.
  • Utiliser des chemins absolus : préférez plugin_dir_url() et plugin_dir_path().
  • Négliger les tests : un plugin non testé peut casser un site.

FAQ : Questions fréquentes sur la création de plugins WordPress

Quel langage utiliser pour un plugin WordPress ?

Le PHP est le langage principal, complété par HTML, CSS et JavaScript pour l’interface.

Puis-je créer un plugin sans connaissances en PHP ?

Il est difficile de créer un plugin fonctionnel sans PHP, mais des outils comme les constructeurs de plugins visuels peuvent aider pour des besoins simples.

Comment ajouter une table personnalisée dans la base de données ?

Utilisez la fonction dbDelta() dans le hook d’activation pour créer ou mettre à jour des tables.

Mon plugin peut-il être gratuit et payant ?

Oui, vous pouvez proposer une version gratuite sur le dépôt WordPress et une version premium avec des fonctionnalités avancées sur votre site.

Dois-je respecter la licence GPL ?

Pour être publié sur le dépôt WordPress, votre plugin doit être sous licence GPL ou compatible.

Comment gérer les mises à jour de mon plugin ?

Pour le dépôt WordPress, les mises à jour sont automatiques. Pour une distribution privée, vous devez implémenter un système de mise à jour.

Prochaines étapes pour aller plus loin

Vous savez maintenant comment créer un plugin WordPress de base. Pour approfondir, explorez les API WordPress (Settings API, HTTP API, REST API), les hooks avancés et la création de widgets. N’hésitez pas à consulter la documentation officielle et à participer aux forums de développeurs. Bonne création !

Photo by Averyanovphoto on Pixabay

16 thoughts on “Comment créer un plugin WordPress ? Guide complet pour débutants

  1. Merci pour ce guide clair. J’ai une question : est-il obligatoire d’utiliser un préfixe pour les fonctions du plugin ?

  2. Je débute en PHP. Est-ce que ce guide est accessible pour un vrai débutant ou faut-il déjà bien connaître les hooks ?

    1. Ce guide suppose des bases en PHP, mais les exemples sont simples. Si vous comprenez les fonctions et les hooks de base, vous devriez pouvoir suivre. N’hésitez pas à consulter la documentation WordPress pour les hooks.

  3. Très utile ! Je cherchais justement à créer un plugin sans code superflu. Une question : peut-on inclure des fichiers CSS ou JS dans un plugin ?

  4. Bonjour, j’ai suivi les étapes mais mon plugin ne s’affiche pas dans la liste des plugins. J’ai vérifié le fichier, l’en-tête semble correct. Une idée ?

    1. Assurez-vous que le fichier principal (mon-premier-plugin.php) se trouve directement dans le dossier du plugin, et non dans un sous-dossier. Vérifiez aussi que l’en-tête est bien le premier contenu du fichier, avant tout code PHP.

    1. Cela peut arriver si le shortcode est appelé dans le contenu et aussi dans un template. Vérifiez que vous n’utilisez pas do_shortcode() ailleurs. Sinon, ajoutez une condition dans votre fonction pour qu’elle ne s’exécute qu’une seule fois.

  5. Super article ! J’ai réussi à créer mon premier plugin avec le message de bienvenue. Par contre, je ne vois pas le shortcode fonctionner sur la page d’accueil.

    1. Non, Docker fonctionne très bien. L’important est d’avoir un environnement local avec WordPress installé. Les étapes de création du plugin restent identiques, quel que soit l’outil utilisé.

  6. Excellent article, clair et concis. J’aimerais savoir comment ajouter une page de réglages dans l’administration pour mon plugin.

    1. Vous pouvez créer une page de réglages en utilisant add_options_page() ou add_menu_page(). Ensuite, enregistrez les options avec register_setting() et créez un formulaire. C’est un peu plus avancé, mais il existe de nombreux tutoriels sur le sujet.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *