Débuter de zéro : Créer votre premier plugin pour WordPress

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

Débuter de zéro : Créer votre premier plugin pour WordPress

Le développement de plugins WordPress est un moyen essentiel d’étendre les fonctionnalités de base de WordPress. En créant des plugins, les développeurs peuvent ajouter des fonctionnalités personnalisées à un site Web sans avoir à modifier le thème ou les fichiers principaux, ce qui garantit l’indépendance et la portabilité des fonctionnalités. Un plugin standard se compose généralement d’un fichier PHP principal, de fichiers de ressources optionnels (tels que CSS et JavaScript) et d’un pack de langue. Comprendre la structure de base des plugins est la première étape d’un développement réussi.

La structure de base des plugins WordPress et leur création.

La forme la plus basique d'un plug-in est un fichier placé dans le dossier des plug-ins./wp-content/plugins/Le dossier sous le répertoire. Ce dossier doit contenir au moins un fichier PHP principal, dont les commentaires en tête servent à déclarer les informations du plug-in à WordPress.

La rédaction des commentaires d'en-tête des plugins.

Chaque fichier principal du plug-in doit commencer par un bloc de commentaires PHP spécifique, appelé en-tête du plug-in. WordPress utilise ces informations pour identifier et afficher votre plug-in dans la liste des plug-ins de l’interface d’administration. Un en-tête de plug-in standard ressemble à ceci :

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

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

Parmi ceux-ci,Plugin NameC'est obligatoire, les autres champs sont facultatifs. Cependant, pour assurer l'intégrité et le professionnalisme du plug-in, il est recommandé de remplir tous les champs possibles.Text DomainUtilisé pour l’internationalisation, il constitue la base pour la traduction des plugins ultérieurs.

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.

Créer le fichier principal et le répertoire du plug-in.

Tout d’abord,/wp-content/plugins/Créez un nouveau dossier dans le répertoire, par exemple.my-first-pluginEnsuite, créez le fichier PHP principal à l’intérieur de ce dossier ; il porte généralement le même nom que le dossier lui-même.my-first-plugin.phpÉcrivez les commentaires de tête ci-dessus dans ce fichier, puis enregistrez-le. Vous pourrez ensuite le voir et l’activer dans la page “ Plugins ” de l’interface d’administration de WordPress. À ce stade, il n’a pas encore de fonctionnalités.

Concepts de développement fondamentaux : les hooks et les filtres d'action.

L'architecture des plugins de WordPress repose sur un système de “ hooks ”, qui servent d’intermédiaire entre les plugins et le noyau. Les hooks se divisent principalement en deux catégories : les hooks d’action et les hooks de filtre.

Comprendre et utiliser les hooks d'action.

Les hooks d'action vous permettent d'exécuter du code PHP personnalisé à un moment précis ou lorsqu'un événement se produit. Vous pouvez utiliseradd_action()La fonction “ monte ” votre fonction sur un crochet. Par exemple, ajouter automatiquement un paragraphe de texte à la fin d’un article :

function myplugin_add_footer_text( $content ) {
    if ( is_single() ) {
        $content . = '<p>Merci de lire !</p>' ;
    }
    return $content.
}
add_filter('the_content', 'myplugin_add_footer_text' ) ;

Attention, cet exemple utilise en réalité des hooks de filtre pour modifier le contenu. Un exemple typique d'hook d'action est l'ajout d'un menu dans l'interface d'administration :

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

function myplugin_add_admin_menu() {
    add_menu_page(
        '我的插件设置',
        '我的插件',
        'manage_options',
        'myplugin-settings',
        'myplugin_settings_page'
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

Ici,add_action()Convertir une fonction…myplugin_add_admin_menuLié àadmin_menuCe hook d'action est appelé par WordPress lors de la construction du menu d'administration.

Comprendre et utiliser les hooks de filtre.

Les filtres de hook sont utilisés pour modifier les données générées par WordPress pendant leur traitement. Vous pouvez utiliseradd_filter()Vous pouvez utiliser la fonction mount pour monter votre fonction. La fonction de filtrage reçoit la valeur d'entrée, la modifie, puis doit retourner la valeur modifiée. Par exemple, modifiez le titre de l'article :

function myplugin_modify_title( $title ) {
    return '精选: ' . $title;
}
add_filter( 'the_title', 'myplugin_modify_title' );

Les filtres sont très puissants et sont souvent utilisés pour modifier les résultats de recherche, le contenu du texte, les valeurs des options et presque toutes les données générées par WordPress.

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%.

Ajouter une page de paramètres et des options pour le plug-in.

Un plug-in fonctionnel doit généralement offrir aux utilisateurs des options de configuration. WordPress fournit une API de configuration pour créer des pages d’options de manière sécurisée et standardisée.

Créer un menu et des pages d'administration.

Tout d’abord, vous devez utiliser…add_menu_page()Ouadd_options_page()Nous utilisons des fonctions telles que… pour ajouter une page de gestion. Généralement, nous effectuons cette opération en la montant (en l’associant) à un élément spécifique du système.admin_menuSur le crochet, comme indiqué dans l'exemple précédent. Parmi ceux-ci,myplugin_settings_pageC'est une fonction de rappel, utilisée pour rendre le contenu HTML de la page des paramètres.

Utilisez l'API Paramètres pour enregistrer les options.

L'API des paramètres fournit un moyen sécurisé d'enregistrer, de valider et de sauvegarder les paramètres. Les étapes principales consistent à : utiliserregister_setting()Enregistrez un groupe de paramètres, en utilisantadd_settings_section()Ajoutez un bloc de paramètres, et utilisez-le.add_settings_field()Ajoutez des champs de paramètres spécifiques.

Lectures recommandées Guide complet du développement de plugins WordPress : un tutoriel pratique allant de l'initiation à la maîtrise.

function myplugin_settings_init() {
    // 注册一个设置
    register_setting( 'myplugin_settings', 'myplugin_options' );

    // 添加一个设置区块
    add_settings_section(
        'myplugin_section_general',
        '通用设置',
        'myplugin_section_general_cb',
        'myplugin-settings'
    );

    // 添加一个设置字段
    add_settings_field(
        'myplugin_field_text',
        '欢迎语',
        'myplugin_field_text_cb',
        'myplugin-settings',
        'myplugin_section_general',
        [ 'label_for' => 'myplugin_field_text' ]
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

Ensuite, vous devez écrire la fonction de rappel correspondante.myplugin_section_general_cbetmyplugin_field_text_cbAffichez la description du bloc et les champs de saisie HTML. Enfin, dans lemyplugin_settings_pageDans une fonction, on utilise…settings_fields()etdo_settings_sections()Une fonction pour afficher l'ensemble du formulaire.

La sécurité des plugins et les meilleures pratiques.

Lors du développement d’un plug-in, la sécurité est le premier facteur à prendre en compte. Un plug-in non sécurisé pourrait mettre en danger l’ensemble 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.

La validation, le nettoyage et l'échappement des données.

Ne faites jamais confiance aux données saisies par les utilisateurs ou provenant de bases de données. Lors du traitement de toute entrée (comme $_POST, $_GET), une validation et un nettoyage sont nécessaires. WordPress fournit de nombreuses fonctions, telles quesanitize_text_field(), intval(), wp_kses()etc. Lors de l'exportation des données en HTML ou en JavaScript, il est nécessaire de les échapper en utilisant des fonctions telles que <esc_html(), esc_attr(), esc_js()etwp_json_encode()

// 接收、清理并保存数据
$user_input = sanitize_text_field( $_POST['my_field'] );
update_option( 'my_option', $user_input );

// 安全地输出数据
echo esc_html( get_option( 'my_option' ) );

Utiliser des mécanismes autres que ceux basés sur le protocole CE pour les vérifications d’autorisation.

Pour tous les envois de formulaires en arrière-plan ou les requêtes AJAX effectuées par les plugins, il est nécessaire d'utiliser la non-CE de WordPress pour vérifier la légalité et l'unicité des requêtes, afin d'éviter les attaques par falsification de requêtes inter-sites. En même temps, il est important d'utiliser ...current_user_can()La fonction vérifie si l'utilisateur actuel dispose des autorisations nécessaires pour effectuer cette opération.

// 在表单中输出 nonce 字段
wp_nonce_field( 'myplugin_action', 'myplugin_nonce' );

// 在处理请求时验证 nonce 和权限
function myplugin_handle_form_submit() {
    if ( ! isset( $_POST['myplugin_nonce'] ) ||
         ! wp_verify_nonce( $_POST['myplugin_nonce'], 'myplugin_action' ) ||
         ! current_user_can( 'manage_options' ) ) {
        wp_die( '安全校验失败。' );
    }
    // ... 安全地处理数据 ...
}

résumés

Le développement de plugins WordPress est un projet systématique qui commence par la compréhension de la structure de base et du mécanisme des hooks, puis la mise en œuvre de fonctionnalités et la création d’une interface utilisateur, et doit enfin respecter des pratiques de sécurité strictes. En suivant les normes de codage de WordPress et en exploitant pleinement l’API fournie, les développeurs peuvent créer des plugins puissants, sécurisés et faciles à maintenir. Le point essentiel consiste à intégrer de manière transparente les fonctionnalités personnalisées dans le cycle de vie de WordPress via des actions et des hooks de filtres, tout en utilisant l’API Settings pour gérer la configuration, et en accordant toujours la priorité à la validation, au nettoyage, à l’échappement des données et aux contrôles d’autorisation.

FAQ Foire aux questions

Comment déboguer mon plug-in WordPress ?
Activer le mode de débogage de WordPress est la première étape. Danswp-config.phpDans le document, il sera indiqué que...WP_DEBUGLa constante est définie àtrueCela affichera directement les erreurs, avertissements et notifications PHP sur la page. Pour un débogage plus avancé, il est possible d’utiliser…error_log()La fonction enregistre les informations dans le journal d’erreurs du serveur, ou utilise un plug-in de débogage spécialisé pour afficher les détails des requêtes, des hooks, etc.

Comment mon plug-in peut-il offrir un support multilingue ?

WordPress utilise le framework GNU gettext pour réaliser l'internationalisation. Tout d'abord, il faut bien le définir dans les commentaires d'en-tête du plug-in.Text DomainDans le code du plug-in, utilisez < pour tous les chaînes de caractères nécessitant une traduction.__()Pour effectuer la traduction, utilisez_e()Effectuez la traduction et exportez-la directement. Ensuite, utilisez un outil tel que Poedit pour extraire les chaînes de caractères du code source du plug-in et les générer..potDes fichiers de modèle, puis la création de versions correspondantes pour chaque langue..poEt après compilation..moLes fichiers, et placez-les dans le dossier des plugins./languages/Dans le répertoire.

Comment éviter que le nom de la classe d’un plug-in entre en conflit avec celui d’un autre plug-in ?

Afin d’éviter les conflits de noms de classes, de fonctions ou de constantes, la meilleure pratique consiste à utiliser des espaces de noms ou à ajouter un préfixe unique à tous les identifiants. Depuis PHP 5.3, l’utilisation d’espaces de noms est recommandée. Par exemple, déclarer :namespace MyPluginAdmin;Si l'on considère la compatibilité, il est nécessaire d'utiliser un préfixe, et ce préfixe doit être suffisamment unique. Par exemple, on peut utiliser une combinaison d'abréviations du nom de l'entreprise et du nom du plug-in :function acme_myplugin_init() {}Le nom de la classe est défini comme suit :class Acme_MyPlugin_Admin_Settings {}

Comment ajouter une table de base de données personnalisée à mon plug-in ?

Le meilleur moment pour créer une table personnalisée est lorsque le plug-in est activé. Vous pouvez encapsuler le code de création de la table dans une fonction et l'exécuter viaregister_activation_hook()Pour enregistrer une fonction. Dans la fonction, utilisez <dbDelta()La fonction permet de créer ou de mettre à jour la structure d’une table en toute sécurité, mais elle nécessite d’utiliser un format SQL très spécifique. Il est impératif d’utiliser ce format.$wpdb->prefixAjoutez un préfixe de site au nom de la table pour prendre en charge un environnement multi-sites.