Guide d’introduction au développement de plugins WordPress.

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

Guide d’introduction au développement de plugins WordPress.

Les plugins WordPress constituent le mécanisme essentiel permettant d’élargir les fonctionnalités de base de WordPress. Ils permettent aux développeurs d’ajouter de nouvelles fonctionnalités à un site web ou de modifier le comportement existant sans avoir à modifier le code source de WordPress lui-même. Que ce soit pour des fonctionnalités simples (comme des codes courts) ou pour des systèmes de commerce électronique complexes, tout peut être réalisé à l’aide de plugins. Comprendre le fonctionnement des plugins est la première étape pour tout développeur WordPress.

Un plugin WordPress est essentiellement un ou plusieurs fichiers PHP contenant du code qui respecte les normes de codage de WordPress. Ces fichiers sont placés dans un répertoire spécifique et interagissent avec le noyau de WordPress via l’API des plugins. Développer des plugins nécessite non seulement des connaissances en PHP, mais aussi une bonne maîtrise de la vaste bibliothèque de fonctions fournie par WordPress, du système de hooks, ainsi que des méthodes d’interaction avec la base de données.

Créez votre premier fichier de plugin.

Chaque plugin WordPress nécessite un fichier principal, qui sert de point d’entrée pour le plugin. Ce fichier contient les métadonnées du plugin et est responsable de l’initialisation de ses fonctionnalités essentielles.

Lectures recommandées Guichet unique pour le développement de plugins WordPress : de zéro à la publication en ligne.

Structure du fichier principal du plugin

Le noyau d’un plugin est le fichier principal, qui porte généralement le nom du plugin lui-même, par exemple… my-first-plugin.phpLes commentaires en tête de ce fichier sont extrêmement importants, car ils fournissent à WordPress des informations sur l’identité du plugin. Un exemple minimal de commentaires en tête du fichier principal est le suivant :

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.
<?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
 */

Dans cette note, l’élément “ Plugin Name ” est obligatoire. WordPress en a besoin pour identifier et afficher votre plugin dans l’interface de gestion en arrière-plan. Les autres informations, telles que la version et la description, aident les utilisateurs à mieux comprendre les fonctionnalités de votre plugin.

Après avoir défini les informations relatives au plugin, nous commençons généralement à ajouter le code fonctionnel. Par exemple, la fonction la plus simple consiste à ajouter une ligne de texte personnalisé en bas du site web. Cela peut être réalisé en utilisant… wp_footer Cet élément fonctionnel (Action Hook) est utilisé pour réaliser cela.

Réaliser une fonction de fonctionnalité simple

Voici un exemple complet de fichier principal de plugin qui permet d'ajouter du texte en bas de la page :

&lt;?php
/**
 * Plugin Name: 页脚问候插件
 */
// 防止直接访问文件
if ( ! defined( &#039;ABSPATH&#039; ) ) {
	exit;
}

/**
 * 在网站页脚输出一条自定义问候语
 */
function myplugin_add_footer_text() {
	echo &#039;<p style="text-align:center;">Merci de visiter ce site web !</p>';
}
// 将函数挂载到`wp_footer`钩子上
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Dans ce code,myplugin_add_footer_text Il s’agit d’une fonction que nous avons définie ; elle effectue les opérations de sortie concrètes.add_action() Il s’agit d’une fonction de WordPress qui permet d“”intégrer” nos propres fonctions aux fonctionnalités de base de WordPress. wp_footer C’est bien. Ainsi, chaque fois que WordPress exécute la partie pied de page, notre fonction sera automatiquement appelée.

Lectures recommandées De débutant à expert : guide complet et tutoriel pratique pour le développement de plugins WordPress.

Comprendre le mécanisme des hooks de WordPress

Les hooks sont au cœur du développement des plugins pour WordPress et constituent son essence même, car ils permettent de modifier ou d’élargir les fonctionnalités de base du système. Il existe deux types principaux de hooks : les hooks d’action (Action Hooks) et les hooks de filtre (Filter Hooks).

L'application des crochets d'action.

Les « hooks d’action » vous permettent d’exécuter du code personnalisé à des moments précis ou lorsque des événements se produisent. Par exemple, lorsque un article est publié…publish_post), ou lorsque l'utilisateur se connecte (wp_loginUtiliser. add_action() Une fonction peut lier votre fonction de rappel (callback) à un événement (ou un « hook ») défini dans le système.

Les exemples ci-dessous montrent comment ajouter automatiquement une déclaration de droits d’auteur à la fin du contenu d’un article.

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 myplugin_add_post_copyright( $content ) {
	if ( is_single() ) {
		$copyright = '<div class="post-copyright"><p>Ce texte est un contenu original. Pour toute réutilisation, veuillez en mentionner la source.</p></div>';
		$content .= $copyright;
	}
	return $content;
}
add_filter( 'the_content', 'myplugin_add_post_copyright' );

Notez que nous avons utilisé… add_filter() plutôt que add_action()Car modifier le contenu d’un article constitue une forme de “ filtrage ”. Cela amène à l’existence d’un autre hook important.

Fonctionnalités des hooks de filtre

Les crochets de filtre vous permettent de modifier les données transmises au cours du processus. La principale différence avec les crochets d’action réside dans le fait que la fonction de filtre doit retourner une valeur (généralement la valeur d’entrée modifiée). Par exemple…the_content Les filtres vous permettent de modifier le contenu des articles qui vont être affichés., the_title Vous êtes autorisé à modifier le titre de l’article.

Les exemples ci-dessous montrent comment utiliser des filtres pour modifier la longueur des extraits d’articles.

Lectures recommandées Guide de début pour le développement de plugins WordPress : Construisez votre premier plugin personnalisé à partir de zéro

function myplugin_custom_excerpt_length( $length ) {
	// 将默认的55个词改为20个词
	return 20;
}
add_filter( 'excerpt_length', 'myplugin_custom_excerpt_length' );

Dans cet exemple, notre fonction… myplugin_custom_excerpt_length La valeur par défaut de la longueur de l’extrait a été reçue, et nous avons retourné une nouvelle valeur personnalisée. WordPress utilisera ensuite cette nouvelle valeur pour générer l’extrait.

Internationalisation des plugins et champs de texte

Pour que votre plugin puisse être utilisé par des utilisateurs du monde entier, l’internationalisation (i18n) est une étape indispensable. WordPress met à disposition un ensemble complet de fonctions permettant de traduire le plugin dans plusieurs langues.

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.

Champ de texte pour charger des plugins

La première étape de l’internationalisation consiste à configurer correctement le domaine de texte (Text Domain) dans le plugin, puis à charger les fichiers de traduction au bon moment. Le domaine de texte doit correspondre exactement à celui défini dans les commentaires en tête du fichier principal du plugin.

Nous utilisons généralement cela lors de l’initialisation des plugins. load_plugin_textdomain Une fonction est utilisée pour charger les traductions. Une pratique standard consiste à placer le code suivant dans le fichier principal :

function myplugin_load_textdomain() {
	load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'myplugin_load_textdomain' );

Ce code définit une fonction. myplugin_load_textdomainEt utilisez… add_action Montez-le sur… plugins_loaded Sur l’ crochet. Cela assure que le fichier de traduction ait été chargé avant l’exécution du code fonctionnel du plugin. Le troisième paramètre spécifie l’emplacement du fichier de langue (le fichier .mo), qui se trouve généralement dans le répertoire du plugin. languages Dans le dossier.

Utilisez la fonction de traduction pour encadrer la chaîne de caractères.

Dans le code des plugins, toutes les chaînes de caractères destinées aux utilisateurs qui doivent être traduites doivent être encadrées par des fonctions spécifiques. Les deux fonctions les plus couramment utilisées sont… __() et _e()

__() La fonction retourne la chaîne de caractères traduite. _e() La fonction affiche simplement le résultat (avec l’instruction `echo`). Dans l’exemple précédent où nous avons ajouté du texte de pied de page, nous aurions dû écrire le code de cette manière pour prendre en charge la traduction :

function myplugin_add_footer_text() {
	$text = __( '感谢您访问本网站!', 'my-first-plugin' );
	echo '<p style="text-align:center;">'`. esc_html($text)`.'</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Ici, la chaîne de caractères “ Merci d’avoir visité ce site web ! ” est… __() Encapsulation de la fonction, avec spécification de la zone de texte. my-first-pluginLes traducteurs peuvent créer des fichiers de traduction pour cette chaîne de caractères dans différentes langues. En même temps, nous utilisons… esc_html() Il est important que les fonctions échappent les caractères de sortie, car c’est une pratique de sécurité essentielle.

Sécurité des plugins et bonnes pratiques

Développer un plugin populaire implique de donner autant d’importance à la sécurité et à la qualité du code qu’aux fonctionnalités mêmes. Respecter les meilleures pratiques permet de protéger les sites web des utilisateurs, ainsi que d’améliorer la fiabilité et la maintenance du plugin.

Validation, échappement et nettoyage des données

Ne faites jamais confiance aux données provenant des utilisateurs ou de sources externes. Avant de traiter tout type de données entrantes (telles que $_GET, $_POST, $_COOKIE) ou de les envoyer vers un navigateur ou une base de données, il est indispensable de procéder à des vérifications appropriées.

Pour les données affichées sur une page HTML, il est conseillé d’utiliser les fonctions d’échappement fournies par WordPress. esc_html(), esc_attr(), esc_url()Pour les données qui vont être stockées dans la base de données, utilisez… wp_strip_all_tags() Ou sanitize_text_field() Effectuez un nettoyage. L'exemple suivant montre une méthode sûre de gérer les données saisies dans un formulaire :

// 假设我们接收一个名为`user_bio`的POST字段
$raw_bio = $_POST['user_bio'] ?? ''; // 使用空合并运算符提供默认值
// 清理数据:移除标签,清理额外空格和特殊字符
$clean_bio = sanitize_textarea_field( $raw_bio );
// 在存入数据库前,还可以使用`wp_kses_post`允许安全的HTML标签
$safe_bio_for_db = wp_kses_post( $clean_bio );
// 现在$safe_bio_for_db可以安全地存入数据库了

Utiliser des méthodes autres que celles basées sur le protocole CE (Common Edge) et les vérifications de droits d’accès.

Si votre plugin dispose d’une interface de gestion ou gère les soumissions de formulaires, vous devez utiliser le mécanisme « Nonce » (Number used once) de WordPress pour empêcher les attaques de type Cross-Site Request Forgery (CSRF). De plus, vous devez mettre en œuvre des vérifications de capacités (Capability Checks) pour vous assurer que l’utilisateur actuel dispose des autorisations nécessaires pour effectuer l’opération.

Lors de la création d'un menu de gestion ou d'un formulaire, générer un champ qui n’appartient pas à la catégorie « CE » (Common Elements).

// 在表单中输出一个非ce字段
wp_nonce_field( 'myplugin_save_action', 'myplugin_nonce_field' );

Lors du traitement de la soumission d’un formulaire, il est nécessaire de vérifier si cette valeur n’est pas de type « ce ».

// 验证非ce
if ( ! isset( $_POST['myplugin_nonce_field'] ) || ! wp_verify_nonce( $_POST['myplugin_nonce_field'], 'myplugin_save_action' ) ) {
	wp_die( __( '安全校验失败,操作已终止。', 'my-first-plugin' ) );
}
// 检查用户权限(例如,检查是否有`manage_options`权限)
if ( ! current_user_can( 'manage_options' ) ) {
	wp_die( __( '您没有执行此操作的权限。', 'my-first-plugin' ) );
}
// 通过所有安全检查,开始处理数据...

Respecter ces directives de sécurité est la base pour créer un plugin fiable.

résumés

Le développement de plugins pour WordPress est un processus qui consiste à transformer des idées en fonctionnalités concrètes, et cela repose sur une compréhension approfondie de l’architecture de base de WordPress. Tout commence par la création d’un fichier principal contenant les commentaires d’en-tête appropriés. Maîtriser la différence entre les hooks d’actions et les hooks de filtres est essentiel pour étendre les fonctionnalités du plugin. L’internationalisation des plugins permet à vos créations de bénéficier à des utilisateurs du monde entier. De plus, des pratiques de sécurité rigoureuses, telles que la validation des données, l’échappement des caractères dangereux, le nettoyage des données, ainsi que des vérifications relatives aux droits d’accès, constituent les fondements pour assurer la stabilité et la fiabilité des plugins et gagner la confiance des utilisateurs. En suivant ces étapes et ces bonnes pratiques, vous pourrez créer des plugins WordPress puissants, sûrs et faciles à maintenir.

FAQ Foire aux questions

Un plugin WordPress nécessite au minimum plusieurs fichiers. Quels sont-ils ?

Un plugin WordPress le plus simple peut ne contenir qu’un seul fichier PHP. Ce fichier doit inclure des commentaires de tête conformes aux normes (tel que le nom du plugin, etc.) ainsi que le code permettant d’implémenter les fonctionnalités du plugin. À mesure que les fonctionnalités d’un plugin deviennent plus complexes, il est généralement divisé en plusieurs fichiers, qui comprennent également des fichiers CSS, JavaScript, des images, ainsi que des fichiers de traduction pour différentes langues.

Devrais-je écrire le code du plugin directement dans le fichier functions.php du thème ?

Pour le code qui concerne uniquement le sujet actuel et qui est étroitement lié à ses fonctionnalités, il peut être écrit directement dans le cadre du sujet concerné.functions.phpOui. Cependant, pour les fonctionnalités qui sont universelles et qui devraient pouvoir être utilisées dans différents thèmes, il est fortement conseillé de les développer en tant que plugins indépendants. Les plugins présentent de nombreux avantages : ils sont indépendants des thèmes, donc les fonctionnalités ne sont pas perdues lors du changement de thème, et ils sont également plus faciles à gérer et à distribuer.

Comment créer une page de paramétrage de gestion pour mon plugin ?

Vous pouvez utiliser les fonctions fournies par WordPress pour ajouter un menu de gestion et des pages. Les plus couramment utilisées sont… add_menu_page() Ou add_options_page() Vous devez créer une fonction de rappel (callback) pour afficher le contenu HTML de la page et gérer l’envoi des formulaires (y compris la vérification non CE et les contrôles d’autorisation). Généralement, ce processus implique l’utilisation de l’API des paramètres de WordPress (Settings API), qui vous permet de créer et de gérer des options de paramètres de manière plus standardisée et sécurisée.

Lors du développement de plugins, comment effectuer le débogage et enregistrer les erreurs ?

Tout d’abord, assurez-vous que… dans l’environnement de développement.wp-config.phpActiver WP_DEBUG dans le fichier :define( 'WP_DEBUG', true );Cela affichera les erreurs et les avertissements 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 les fonctionnalités intégrées à WordPress pour effectuer cette tâche.wp_debugFonctions pertinentes. De plus, il existe de nombreux plugins de débogage de qualité provenant de tiers, tels que Query Monitor, qui peuvent vous aider à analyser les requêtes de base de données, les hooks et les scripts, et constituent de puissants outils pour le développement de plugins.