Maîtriser le développement de plugins WordPress : construire votre premier module d'extension de A à Z.

Lecture en 3 minutes
2026-03-14
2026-06-04
2,698
Je reçois une commission lorsque vous achetez via les liens ci‑dessous, sans frais supplémentaires pour vous.

Comprendre l'architecture de base des plugins WordPress.

Les plugins WordPress sont essentiellement un ou plusieurs fichiers PHP qui suivent une structure de nommage et d’organisation spécifiques, et qui permettent d’étendre ou de modifier les fonctionnalités principales via le système de “ hooks ” fourni par WordPress. Comprendre cette architecture est la première étape pour réussir son développement.

Le plug-in le plus simple ne nécessite qu'un fichier principal et un commentaire d'en-tête de plug-in. Le commentaire d'en-tête de plug-in est essentiel pour que WordPress reconnaisse le plug-in, et il doit se trouver en haut du fichier PHP principal. Par exemple, un plug-in nommémy-first-plugin.phpPour un document, la partie initiale de son contenu devrait être la suivante :

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于演示的简单WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Cette annotation indique à l'interface d'administration des plugins de WordPress qu'il s'agit d'un plugin nommé “ Mon premier plugin ”. Créez ce fichier et placez-le dans le dossier approprié./wp-content/plugins/my-first-plugin/Après avoir créé le répertoire, vous pourrez le voir dans la page “ Plugins ” de l’interface d’administration de WordPress et l’activer ou le désactiver.

Lectures recommandées Apprendre le développement de plugins pour WordPress à partir de zéro : Créer votre première fonction personnalisée

Le principe de fonctionnement de base des plugins repose sur les “ hooks ”. Les hooks se divisent en deux catégories : les actions et les filtres. Les hooks d’action vous permettent d’exécuter du code personnalisé à des moments spécifiques (par exemple, lors de la publication d’un article ou du chargement d’une page). Les hooks de filtre, quant à eux, vous permettent de modifier les données générées au cours du processus (par exemple, le contenu de l’article ou le titre). Le code de votre plugin est principalement géré via les actions et les filtres.add_action()etadd_filter()Les deux fonctions sont “ montées ” sur ces crochets.

Hébergement WordPress par UltraHost
Garantie de remboursement dans les 30 jours, bande passante illimitée et base de données, protection gratuite contre les attaques DDoS. Avantage de 501 TP4T pour les achats sur 3 ans.

Configurez votre premier environnement de développement de plug-ins.

Avant de commencer à coder, il est essentiel de disposer d'un environnement de développement local fiable. Cela vous permettra de tester et de déboguer en toute sécurité.

Choisissez les outils de serveur locaux appropriés.

Il est recommandé d’utiliser des solutions de serveur local intégrées, telles que Local by Flywheel, XAMPP ou MAMP. Elles permettent d’installer en un clic un environnement complet comprenant PHP, MySQL et Apache/Nginx, ce qui simplifie grandement le processus de configuration. Parmi celles-ci, Local by Flywheel offre un support particulièrement adapté à WordPress, permettant de créer et de cloner rapidement des sites WordPress.

Initialiser le répertoire et les fichiers des plugins.

Sur votre site WordPress local.wp-content/plugins/Sous le répertoire, créez un dossier séparé pour votre plug-in. Le nom du dossier doit utiliser des lettres minuscules, des chiffres et des traits d'union, et être aussi proche que possible du nom du fichier principal du plug-in. Par exemple, créez un dossier intitulé « plug-in ».greeting-pluginEt créez le fichier principal dedans.greeting-plugin.php

Afin d’assurer une organisation claire du code, il est recommandé d’adopter une structure modulaire dès le début. Un répertoire de plugins de base pourrait ressembler à ceci :

Lectures recommandées Analyse approfondie du développement de plugins WordPress : de la base à la personnalisation efficace.

greeting-plugin/
├── greeting-plugin.php      // 主文件,包含插件头部注释和核心逻辑
├── includes/                // 存放核心功能类或函数文件
├── admin/                   // 存放后台管理界面相关文件
├── public/                  // 存放前端功能相关文件
├── assets/                  // 存放CSS、JavaScript和图片资源
│   ├── css/
│   ├── js/
│   └── images/
└── languages/               // 存放国际化翻译文件(可选)

Réaliser les fonctions principales et la gestion d'arrière-plan.

Allons mettre en pratique ce que nous avons appris en créant un plug-in qui affichera un message de bienvenue personnalisé sur la page d’accueil du site Web et permettra aux utilisateurs de personnaliser le texte du message dans l’arrière-plan.

Créer une fonction de base.

Tout d’abord, dans le fichier principal…greeting-plugin.phpEn dessous de l'annotation de tête, écrivez une fonction de fonctionnalité principale. Cette fonction ...display_greeting()Il est utilisé pour obtenir un message d'accueil et préparer sa sortie.

fonction display_greeting() {
    // Récupérer le message d'accueil stocké dans les options WordPress, par défaut “ Bienvenue ! ”
    $greeting_text = get_option('my_greeting_text', 'Bienvenue !');
    // Retourner le message d'accueil après l'avoir sécurisé contre les attaques XSS
    return '<p class="custom-greeting">'`. esc_html($greeting_text)`.'</p>';
}

Pour que cette salutation apparaisse après le contenu de l'article, nous devons utiliser un hook d'action.the_contentNous allons créer une nouvelle fonction.append_greeting_to_content()Et le monter sur ce crochet.

hosting.com Hébergement partagé
Hautes performances avec les CPU AMD EPYC, stockage SSD NVMe et LiteSpeed, support interne expert 24h/24 et 7j/7, mesures de sécurité avancées, notamment SSL, protection contre la force brute, les logiciels malveillants et le DDoS, économies pouvant aller jusqu'à 73%.
function append_greeting_to_content( $content ) {
    // 只在单篇文章和页面中追加问候语
    if ( is_single() || is_page() ) {
        $content .= display_greeting();
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器
add_filter( 'the_content', 'append_greeting_to_content' );

Ajouter un menu de gestion des plugins et une page de paramètres.

Afin de permettre aux utilisateurs de personnaliser les messages d'accueil, nous devons ajouter une page de paramètres dans l'interface d'administration de WordPress. Cela se fait généralement dans <admin/Créez un fichier séparé dans le sous-répertoire pour le traiter, par exemple.admin/settings-page.php

Tout d'abord, utilisez-le dans le fichier principal.add_action()Montrez une fonction qui crée un menu de gestion.

// 仅在后台加载时引入管理页面代码
if ( is_admin() ) {
    require_once plugin_dir_path( __FILE__ ) . 'admin/settings-page.php';
}

Dansadmin/settings-page.phpDans ce fichier, nous écrivons la logique permettant de créer des menus et de traiter les formulaires. Les fonctions clés sont les suivantes :add_options_page()

Lectures recommandées Commençons par le début : créons votre premier plugin WordPress.

La fonction my_greeting_add_admin_menu() ajoute une page d'options au menu d'administration de WordPress. Cette page permet de configurer les paramètres de la fonctionnalité ' Salutations '.

La fonction my_greeting_add_admin_menu() est appelée par l'action ' admin_menu ' et exécute le code suivant :

function my_greeting_add_admin_menu() {
    add_options_page(
        'Paramètres des salutations',  // Titre de la page
        'Personnaliser les salutations',  // Titre du menu
        'manage_options',  // Autorisations requises
        'greeting-settings',  // Slug du menu
        'my_greeting_settings_page'  // Fonction de rappel pour afficher le contenu de la page
    );
}
add_action( 'admin_menu', 'my_greeting_add_admin_menu' );

function my_greeting_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Configurez les messages d'accueil.</h1>
        <form method="post" action="/fr/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'greeting_settings_group' ); // 设置组名
            do_settings_sections( 'greeting-settings' ); // 页面slug
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="fr"/></form>
    </div>
    &lt;?php
}

Ensuite, nous devons enregistrer une option de paramétrage.my_greeting_textEt ajoutez un champ de saisie pour celui-ci. Cela est fait en utilisantregister_setting()add_settings_section()etadd_settings_field()La fonction est terminée.

function my_greeting_settings_init() {
    register_setting( 'greeting_settings_group', 'my_greeting_text' );

add_settings_section(
        'greeting_settings_section',
        '编辑问候文本',
        null,
        'greeting-settings'
    );

add_settings_field(
        'my_greeting_field',
        '问候语内容',
        'my_greeting_field_render',
        'greeting-settings',
        'greeting_settings_section'
    );
}
function my_greeting_field_render() {
    $value = get_option( 'my_greeting_text', '欢迎光临!' );
    echo '<input type="text" name="my_greeting_text" value="' . esc_attr( $value ) . '" class="regular-text">';
}
add_action( 'admin_init', 'my_greeting_settings_init' );

Désormais, les utilisateurs peuvent modifier le texte dans la page “ Paramètres ” -> “ Personnaliser les messages d’accueil ”, et le message d’accueil mis à jour s’affichera à la fin des articles et des pages du site web.

Hébergement partagé InterServer
Hébergement mutualisé $2.50 USD par mois, premier mois $0.1 USD code promo tryinterserver, 461 scripts cloud apps, installation en un clic.

Sécurité des plugins, optimisation et préparation à leur publication

Un plug-in qualifié doit non seulement fonctionner, mais il doit également être sûr, efficace et facile à entretenir.

Mettre en œuvre les meilleures pratiques de sécurité

La sécurité est la considération primordiale. Toutes les données saisies par l'utilisateur ou extraites de la base de données et affichées dans l'interface utilisateur doivent être échappées. Il faut utiliser les fonctions fournies par WordPress, telles que :esc_html()esc_attr()wp_kses_post()Lors du traitement des soumissions de formulaires et des demandes non AJAX, il est essentiel d’utiliser…wp_verify_nonce()etcheck_admin_referer()Pour vérifier la légalité de la requête et prévenir les attaques par falsification de requêtes intersites (CSRF).

Pour tout script ou feuille de style introduit par un plugin, il est obligatoire d’utiliser…wp_enqueue_script()etwp_enqueue_style()Procédez à une inscription et à un chargement corrects. Cela permettra d’assurer que les dépendances sont correctes et d’éviter les conflits. En outre, utilisez < pour votre objet de script.wp_localize_script()Pour transmettre en toute sécurité des variables PHP à JavaScript.

Réaliser l’internationalisation et la localisation.

Pour que le plug-in puisse être utilisé par des utilisateurs du monde entier, il doit prendre en charge l'internationalisation. Cela signifie que vous devez traduire tous les chaînes de texte destinées aux utilisateurs dans le plug-in.__()Ou_e()Il suffit d'inclure le package de fonctions de traduction. Dans les commentaires en tête du fichier principal,Text DomainIl doit être cohérent avec le nom du répertoire du plug-in. Par exemple :
Text Domain: greeting-plugin

Ensuite, vous pouvez utiliser un outil de traduction (comme Poedit) pour générer.potDes fichiers modèles, à partir desquels les traducteurs peuvent créer des traductions..poet.moLe fichier est stocké dans le plugin.languages/Dans le dossier.

Préparez-vous à publier dans le répertoire officiel de WordPress.

Si vous prévoyez de soumettre un plug-in au répertoire des plug-ins de WordPress.org, vous devez effectuer des préparations supplémentaires. Tout d’abord, assurez-vous que le code respecte les normes de codage de WordPress. Ensuite, créez une description détaillée.readme.txtLe fichier, dont le format doit être conforme aux exigences du catalogue, doit contenir une description, des étapes d'installation, des captures d'écran, un journal des mises à jour, etc. Vous devez également soumettre le plug-in au référentiel SVN et vous assurer que la structure du catalogue est conforme aux normes. Avant la publication, il est impératif de procéder à des tests de compatibilité approfondis entre les versions, les thèmes et les autres plug-ins.

résumés

Le développement de plugins WordPress est un processus qui consiste à transformer des idées en fonctionnalités. Le cœur de cette démarche réside dans la compréhension et la maîtrise du système de hooks. En commençant par la création d'un seul fichier avec des commentaires d'en-tête appropriés, en passant par la construction progressive de modules fonctionnels, tout en respectant strictement les normes de codage sécurisé et d'internationalisation, il est possible de créer des plugins professionnels et fiables. En pratiquant tout le processus, qui comprend la configuration d'un environnement local, l'organisation modulaire du code, la mise en œuvre de l'interaction entre l'avant et l'arrière-plan, ainsi que la préparation à la publication, vous avez déjà acquis les compétences de base nécessaires pour créer un plugin de A à Z. Apprendre continuellement l'API principale de WordPress et étudier en profondeur le code source des plugins de qualité est le meilleur moyen d'améliorer vos compétences de développement.

FAQ Foire aux questions

Est-il nécessaire de maîtriser PHP pour développer des plugins ?

Oui, il est indispensable d’avoir une solide base en PHP. En effet, WordPress est écrit en PHP, et le code des plugins est principalement en PHP. Vous devez comprendre la syntaxe PHP, les fonctions, la programmation orientée objet et la manière d’interagir avec la base de données MySQL. De plus, une connaissance de base du HTML, du CSS et du JavaScript vous aidera à créer des interfaces utilisateur.

Comment déboguer mon plugin ?

WordPress offre divers outils de débogage. Tout d'abord, dans votrewp-config.phpActiver le mode de débogage dans le fichier.WP_DEBUGLa constante est définie àtrueCela affichera les erreurs, les avertissements et les notifications PHP sur l'écran. Vous pouvez également utilisererror_log()La fonction enregistre les informations personnalisées dans le journal d’erreurs du serveur, ou utilise des outils plus avancés tels que le plug-in Query Monitor, qui permet d’analyser les requêtes de base de données, les hooks, les scripts, etc., et constitue un outil précieux pour les développeurs.

Est-ce que mon plug-in pourrait entrer en conflit avec le thème ou d'autres plug-ins ?

C’est possible. Les conflits proviennent généralement de plusieurs raisons : l’utilisation de noms de fonctions, de classes ou de constantes communs ; des conflits entre les scripts et les feuilles de style chargés ; ou un traitement inapproprié de la priorité des mêmes événements (« hooks »). Afin d’éviter ces conflits de noms, tous les fonctions, classes et constantes doivent porter un préfixe unique, qui est souvent lié au nom du plugin ou à une abréviation.wp_enqueue_scriptLa série de fonctions permet de gérer efficacement le cycle de vie des ressources. Lors de la modification du comportement principal, il est important de prendre en compte la priorité des crochets et les relations de dépendance entre eux.

Ai-je besoin de créer une table de données séparée pour mon plug-in ?

Dans la grande majorité des cas, il n’est ni nécessaire ni recommandé de créer directement de nouvelles tables de base de données. WordPress fournit une puissante API Options (pour stocker des données de paires clé-valeur) et une API Post Meta/User Meta (pour stocker des données relatives aux articles et aux utilisateurs), qui couvrent plus de 90 % des besoins de stockage de données. Seulement dans les cas où il est nécessaire de stocker de grandes quantités de données avec des relations complexes et nécessitant des requêtes efficaces, il faut envisager d’utiliser une base de données séparée.$wpdbLes classes créent des tables personnalisées, mais cela augmente considérablement la complexité du plug-in.

Comment ajouter des options de configuration à mon plug-in ?

Comme mentionné précédemment, la pratique standard consiste à utiliser l'API Paramètres de WordPress. Cette API gère la sécurité (comme la validation des nonces), la vérification des autorisations des utilisateurs et le rendu de l'interface. Les étapes consistent à utiliser :add_menu_page()Ou ses fonctions dérivées (comme par exemple)add_options_page()🔧 Ajoutez des menus et des pages, puis utilisez-les.register_setting()add_settings_section()etadd_settings_field()Pour définir et afficher des champs de configuration spécifiques. C'est plus sûr et plus structuré que de créer manuellement des formulaires et de gérer les soumissions.