creer-un-plugin-wordpress-guide-detaille-pour-les-developpeurs

Les plugins WordPress sont des extensions qui permettent d’ajouter des fonctionnalités personnalisées sans modifier le cœur du CMS. Développer son propre plugin WordPress est une compétence essentielle pour les développeurs souhaitant créer des solutions sur mesure, que ce soit pour un usage personnel, un projet client ou une distribution publique. Dans ce guide détaillé, nous allons voir comment créer un plugin WordPress from scratch, en respectant les bonnes pratiques de développement.

Pourquoi développer son propre plugin WordPress ?

Créer son propre plugin WordPress présente de nombreux avantages, que ce soit pour un usage personnel, un projet client ou une diffusion publique sur le répertoire officiel de WordPress.

1. Personnalisation et contrôle total

En développant votre propre plugin, vous avez un contrôle total sur ses fonctionnalités et son comportement. Contrairement aux plugins tiers qui incluent souvent des fonctionnalités superflues ou des restrictions, un plugin sur mesure est conçu spécifiquement pour répondre à vos besoins.

2. Performance optimisée

Les plugins gratuits ou premium sont généralement conçus pour un large éventail d’utilisateurs et incluent des options que vous n’utiliserez jamais. Cela peut alourdir votre site et impacter ses performances.

3. Sécurité renforcée

Les plugins populaires sont souvent ciblés par les hackers en raison de failles de sécurité potentielles. En développant votre propre extension, vous contrôlez entièrement le code et pouvez y appliquer les meilleures pratiques de sécurité.

4. Compatibilité assurée avec votre site et vos autres outils

Les plugins tiers ne sont pas toujours compatibles avec les thèmes et les autres extensions installées sur votre site. Un conflit peut provoquer des erreurs d’affichage ou des bugs inattendus.

5. Monétisation et reconnaissance dans la communauté

Si votre plugin répond à un besoin spécifique et qu’il apporte une vraie valeur ajoutée, vous pouvez le proposer à d’autres utilisateurs sous différentes formes (publication sur le répertoire WordPress, modèle freemium ou vente sur des marketplaces)

Prérequis nécessaires

Avant de créer un plugin WordPress, vous devez configurer un environnement de développement, à savoir :

  • Un serveur local : XAMPP, MAMP ou Local by Flywheel.
  • Un éditeur de code : VS Code, Sublime Text ou PHPStorm.
  • Une installation de WordPress : Pour tester votre plugin en local.
  • Connaissances en PHP et WordPress API : Le développement de plugins repose principalement sur PHP et les hooks WordPress.

Structure d’un plugin WordPress

Chaque plugin WordPress a une structure minimale qui respecte un certain format. Voici la structure de base :

/mon-plugin/
│── mon-plugin.php
│── readme.txt
│── /includes/
│── /assets/
│── /admin/
│── /public/
  • mon-plugin.php → Le fichier principal contenant les fonctions du plugin.
  • readme.txt → Description du plugin, utile pour la publication sur le répertoire WordPress.
  • includes/ → Contient les fichiers PHP nécessaires au fonctionnement du plugin.
  • assets/ → Stocke les images, icônes ou fichiers CSS et JavaScript.
  • admin/ → Contient les fichiers liés au back-office de WordPress.
  • public/ → Gère les fonctionnalités côté utilisateur.

Création du fichier principal du plugin

Créez un dossier dans /wp-content/plugins/ et nommez-le mon-plugin. Ensuite, dans ce dossier, créez un fichier mon-plugin.php et ajoutez l’en-tête du plugin. Ce fichier permet à WordPress de reconnaître votre plugin et d’afficher ses informations dans le tableau de bord (Extensions > Extensions installées).

<?php
/*
Plugin Name: Mon Plugin WordPress
Plugin URI: https://mon-site.com
Description: Un plugin personnalisé développé from scratch.
Version: 1.0
Author: Mon Nom
Author URI: https://mon-site.com
License: GPLv2 or later
Text Domain: mon-plugin
*/

Ajouter une fonctionnalité de base

Ajoutons une simple fonctionnalité qui affiche un message en haut de chaque article. Dans mon-plugin.php, ajoutez ce code :

function mon_plugin_message($content) {
    if (is_single()) {
        $message = '</code></pre>
<div style="background: #f8f9fa; padding: 10px; border-left: 4px solid #0073aa;">

<strong>Note :</strong> Ceci est un message ajouté par Mon Plugin.

</div>';
        return $message . $content;
    }
    return $content;
}
add_filter('the_content', 'mon_plugin_message');
  • is_single() vérifie si la page est un article.
  • add_filter(‘the_content’, ‘mon_plugin_message’); ajoute notre message avant le contenu.

Activez votre plugin dans WordPress et testez en affichant un article.

Ajouter une page de réglages dans l’administration

Créer un menu dans le tableau de bord

Dans mon-plugin.php, ajoutez le code suivant. Ce code ajoute un menu dans le back-office de WordPress.

function mon_plugin_menu() {
    add_menu_page(
        'Paramètres Mon Plugin', 
        'Mon Plugin', 
        'manage_options', 
        'mon-plugin-settings', 
        'mon_plugin_settings_page', 
        'dashicons-admin-generic', 
        81
    );
}
add_action('admin_menu', 'mon_plugin_menu');

Créer la page des paramètres

Ajoutez cette fonction à mon-plugin.php. En fait, ce code affiche un formulaire de réglages pour notre plugin.

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

Ajouter des options personnalisables

Nous allons ajouter une option qui permet à l’administrateur de modifier le message affiché sur les articles. Ajoutez dans mon-plugin.php :

function mon_plugin_register_settings() {
    register_setting('mon_plugin_options_group', 'mon_plugin_message');
    add_settings_section('mon_plugin_main_section', 'Options principales', null, 'mon-plugin-settings');
    add_settings_field('mon_plugin_message_field', 'Message personnalisé', 'mon_plugin_message_callback', 'mon-plugin-settings', 'mon_plugin_main_section');
}
add_action('admin_init', 'mon_plugin_register_settings');

function mon_plugin_message_callback() {
    $message = get_option('mon_plugin_message', 'Ceci est un message par défaut.');
    echo '<input type="text" name="mon_plugin_message" value="' . esc_attr($message) . '" class="regular-text">';
}
  • register_setting() enregistre une option en base de données.
  • add_settings_section() crée une section de réglages.
  • add_settings_field() ajoute un champ d’entrée.

Modifiez ensuite la fonction mon_plugin_message() pour récupérer le message personnalisé :

function mon_plugin_message($content) {
    if (is_single()) {
        $message = get_option('mon_plugin_message', 'Ceci est un message par défaut.');
        return '<div style="background: #f8f9fa; padding: 10px; border-left: 4px solid #0073aa;">' . $message . '</div>' . $content;
    }
    return $content;
}

Ajouter des fichiers CSS et JavaScript

Si votre plugin inclut des styles ou scripts, ajoutez-les dans un dossier assets/ et enregistrez-les via functions.php :

function mon_plugin_enqueue_scripts() {
    wp_enqueue_style('mon-plugin-style', plugin_dir_url(__FILE__) . 'assets/style.css');
    wp_enqueue_script('mon-plugin-script', plugin_dir_url(__FILE__) . 'assets/script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'mon_plugin_enqueue_scripts');

Tester et finaliser le plugin

Activer et tester

  • Allez dans Extensions > Extensions installées et activez votre plugin.
  • Vérifiez si le message s’affiche bien sur les articles.
  • Modifiez l’option dans les paramètres pour tester la personnalisation.

Déboguer et optimiser

  • Vérifiez les erreurs avec le mode debug (wp-config.php).
  • Utilisez esc_html(), esc_attr() et wp_nonce_field() pour renforcer la sécurité.

Le mot de la fin

Créer un plugin WordPress from scratch offre une liberté totale pour ajouter des fonctionnalités personnalisées. Grâce à ce guide, vous avez appris à structurer un plugin, ajouter un menu admin, créer des options et intégrer des scripts. Vous pouvez maintenant enrichir votre plugin avec des fonctionnalités avancées comme les shortcodes, AJAX et API REST.
Prêt à publier votre premier plugin WordPress ?