Maîtriser le développement de plugins pour WordPress est une compétence essentielle pour étendre les fonctionnalités d’un site web et répondre à des besoins personnalisés, contrairement à la simple modification des thèmes. functions.php Par rapport aux fichiers traditionnels, l’utilisation de plugins permet de garantir l’indépendance des fonctionnalités par rapport au thème choisi, ce qui facilite le transfert, la gestion et la maintenance du site. Cet article vous guidera pas à pas pour créer un plugin complet et conforme aux normes de codage de WordPress, à partir de zéro.
Préparation et aménagement de l'environnement.
Avant d’écrire la première ligne de code, vous aurez besoin d’un environnement de développement approprié ainsi que d’une compréhension de base de l’architecture de WordPress.
Configuration de l'environnement de développement
Un environnement de développement local standard est la base d’un développement efficace. Il est recommandé d’utiliser des outils tels que XAMPP, MAMP ou Local by Flywheel, qui permettent d’installer Apache, MySQL/Nginx, PHP et WordPress en un seul clic. De plus, assurez-vous que votre éditeur de texte ou votre IDE (comme VS Code ou PhpStorm) prend en charge l’highlighting du code PHP ainsi que les suggestions de code ; cela améliorera considérablement votre efficacité de développement.
Lectures recommandées Analyse approfondie du développement de plugins WordPress : de la base à la personnalisation efficace.。
Comprendre l’architecture des plugins WordPress
Un plugin WordPress est essentiellement un ou plusieurs fichiers PHP, qui sont stockés dans le répertoire approprié du site web. wp-content/plugins/ Il se trouve dans le répertoire. Son principe fondamental repose sur le mécanisme des “ crochets ” (hooks). Les plugins exécutent du code à des moments précis grâce aux “ crochets d’action ” (action hooks), ou modifient les données produites par d’autres fonctions via les “ crochets de filtre ” (filter hooks). add_action et add_filter Ces deux fonctions constituent les clés essentielles pour débuter dans le développement de plugins.
Créez votre premier plugin : une petite utilité pour les salutations.
Nous allons créer un plugin simple appelé “ Salutations quotidiennes ”. Il affichera une petite boîte de bienvenue personnalisée sur le tableau de bord de l'administration du site web.
Créer le fichier principal du plugin.
Tout d’abord, wp-content/plugins/ Créer un nouveau dossier dans le répertoire et le nommer my-first-greeting-pluginDans ce dossier, créez le fichier principal du plugin. my-first-greeting-plugin.php。
Chaque plugin doit commencer par des commentaires de tête standard, qui servent d’indicateurs pour que WordPress puisse reconnaître les informations relatives au plugin. Ouvrez le fichier principal et saisissez le code suivant :
<?php
/**
* Plugin Name: 每日问候
* Plugin URI: https://www.yourwebsite.com/my-first-greeting-plugin
* Description: 这是一个示例插件,用于在仪表盘显示个性化问候。
* Version: 1.0.0
* Author: Your Name
* Author URI: https://www.yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-greeting
*/ Après avoir enregistré le fichier, accédez à la page des “ Plugins ” dans l’administration de WordPress. Vous devriez voir le plugin “ Daily Greetings ” dans la liste et pouvoir l’activer. Pour l’instant, il n’a aucune fonctionnalité.
Lectures recommandées Guide ultime pour le développement de plugins WordPress : Construire votre premier plugin de zéro à un。
Ajouter des gadgets au tableau de bord
Ensuite, nous utiliserons WordPress pour… wp_dashboard_setup Utilisez des « hooks d’action » pour ajouter une petite fonctionnalité personnalisée à votre tableau de bord. Sous les commentaires en tête du fichier principal, ajoutez le code suivant :
// 添加仪表盘小工具
function mfgp_add_dashboard_widget() {
wp_add_dashboard_widget(
'mfgp_dashboard_widget', // 小工具唯一ID
'每日问候', // 小工具标题
'mfgp_dashboard_widget_content' // 显示内容的回调函数
);
}
add_action( 'wp_dashboard_setup', 'mfgp_add_dashboard_widget' );
// 定义小工具内容
function mfgp_dashboard_widget_content() {
$user = wp_get_current_user();
$hour = date('G'); // 获取当前小时(24小时制)
if ( $hour >= 5 && $hour < 12 ) {
$greeting = '早上好';
} elseif ( $hour >= 12 && $hour < 18 ) {
$greeting = '下午好';
} else {
$greeting = '晚上好';
}
echo '<p>' . sprintf( esc_html__( '%s,%s!欢迎回来。', 'my-first-greeting' ), $greeting, esc_html( $user->display_name ) ) . '</p>'echo '<p>' . esc_html__( '这是你的第一个插件创建的问候小工具。', 'my-first-greeting' ) . '</p>';
} Ce code fait deux choses : premièrement, il définit une fonction. mfgp_add_dashboard_widgetUtilisation wp_add_dashboard_widget Une petite fonction a été créée pour effectuer l’enregistrement. Ensuite, une définition a été donnée pour cette fonction. mfgp_dashboard_widget_content Une fonction est utilisée pour générer le contenu des petits outils. Cet outil affiche des salutations différentes en fonction de l’heure de la journée et mentionne le nom d’utilisateur actuellement connecté. Notez que nous avons utilisé… esc_html__() et esc_html() Préparer la traduction des fonctions et effectuer l’échappement des caractères est une pratique importante pour garantir la sécurité et l’internationalisation.
Après avoir activé l’extension, rafraîchissez la page du tableau de bord et vous verrez l’outil “ Salutations quotidiennes ”.
Amélioration des fonctionnalités des plugins et pratiques de sécurité
Un plugin de base a été développé, mais pour en faire un outil plus fiable et professionnel, il est nécessaire de se concentrer sur la sécurité, la maintenance et les possibilités de configuration par l'utilisateur.
Page de configuration des plugins
Il serait plus utile de permettre aux utilisateurs de personnaliser leurs salutations. Nous créerons une page de configuration simple pour ce plugin.
Tout d'abord, utilisez admin_menu Ajoutez une page de sous-menu au crochet d'action :
Lectures recommandées Guide de début pour le développement de plugins WordPress : Construisez votre premier plugin personnalisé à partir de zéro。
// 添加设置菜单
function mfgp_add_admin_menu() {
add_options_page(
'每日问候设置', // 页面标题
'每日问候', // 菜单标题
'manage_options', // 所需权限
'my-first-greeting-plugin', // 菜单slug
'mfgp_settings_page_content' // 回调函数
);
}
add_action( 'admin_menu', 'mfgp_add_admin_menu' ); Ensuite, il faut créer le contenu de la page de paramétrage, les options de configuration pour l’enregistrement, ainsi que le code permettant de sauvegarder le formulaire.
// 设置页面内容
function mfgp_settings_page_content() {
?>
<div class="wrap">
<h1></h1>
<form action="/fr/options.php/" method="post" data-trp-original-action="options.php">
<?php
settings_fields( 'mfgp_settings_group' ); // 输出安全字段
do_settings_sections( 'my-first-greeting-plugin' ); // 输出设置区块
submit_button(); // 输出提交按钮
?>
<input type="hidden" name="trp-form-language" value="fr"/></form>
</div>
<?php
}
// 初始化设置
function mfgp_settings_init() {
register_setting(
'mfgp_settings_group', // 选项组名
'mfgp_custom_message', // 选项名
array( 'sanitize_callback' => 'sanitize_text_field' ) // 清理回调
);
add_settings_section(
'mfgp_section', // 区块ID
'自定义问候设置', // 区块标题
null, // 区块描述回调(无)
'my-first-greeting-plugin' // 所属页面
);
add_settings_field(
'mfgp_field',
'自定义问候语前缀',
'mfgp_field_callback', // 输出字段HTML的回调
'my-first-greeting-plugin',
'mfgp_section'
);
}
add_action( 'admin_init', 'mfgp_settings_init' );
// 设置字段的回调函数
function mfgp_field_callback() {
$value = get_option( 'mfgp_custom_message', '祝您有愉快的一天,' );
echo '<input type="text" name="mfgp_custom_message" value="' . esc_attr( $value ) . '" class="regular-text" />'echo '<p class="description">Ce texte sera ajouté avant les salutations.</p>';
} Enfin, modifiez la fonction qui contient le contenu du petit outil afin que les paramètres personnalisés par l'utilisateur soient pris en compte.
// 更新小工具内容函数,使用自定义消息
function mfgp_dashboard_widget_content() {
$user = wp_get_current_user();
$hour = date('G');
$custom_msg = get_option( 'mfgp_custom_message', '祝您有愉快的一天,' );
if ( $hour >= 5 && $hour < 12 ) {
$greeting = '早上好';
} elseif ( $hour >= 12 && $hour < 18 ) {
$greeting = '下午好';
} else {
$greeting = '晚上好';
}
echo '<p>' . esc_html( $custom_msg ) . sprintf( esc_html__( '%s,%s!', 'my-first-greeting' ), $greeting, esc_html( $user->display_name ) ) . '</p>';
} Actuellement, une page d'options intitulée “ Salutations quotidiennes ” apparaît dans le menu “ Paramètres ” du back-office de WordPress. Les administrateurs peuvent y enregistrer un prédicat de salutation personnalisé.
Respecter les normes de sécurité et d'encodage.
Pendant le processus de développement, il est essentiel de respecter les bonnes pratiques de sécurité de WordPress : il faut utiliser les fonctions d’échappement appropriées pour tous les données provenant des utilisateurs ou de la base de données et qui vont être affichées. esc_html, esc_attr, esc_urlVérifier et nettoyer toutes les données saisies par les utilisateurs (par exemple, en utilisant des méthodes de validation appropriées). sanitize_text_fieldUtiliser wp_kses_post Ou wp_kses Permettre l’utilisation d’HTML sécurisé. Il est également conseillé de suivre les bonnes pratiques de sécurité. Les normes de codage PHP officielles de WordPressCela permet de garantir la clarté et la cohérence du code.
Internationalisation des plugins et préparation à leur publication
Pour que votre plugin puisse être utilisé par des utilisateurs du monde entier, l’internationalisation est une étape essentielle. De plus, la préparation à sa publication dans le catalogue officiel nécessite également le respect de certaines normes.
Réaliser l'internationalisation des plugins.
Nous avons déjà utilisé cela dans le code. esc_html__() Pour emballer la chaîne de caractères à traduire, il vous faut créer un fichier dans le répertoire des plugins. Pour réaliser l’internationalisation, vous devez… languages Fichier de dossier. Ensuite, ajoutez le code suivant après les commentaires en tête du fichier principal pour charger le champ de texte :
// 加载文本域以实现国际化
function mfgp_load_textdomain() {
load_plugin_textdomain( 'my-first-greeting', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'mfgp_load_textdomain' ); Par la suite, vous pouvez utiliser des outils tels que Poedit pour analyser les chaînes de traduction contenues dans le code des plugins et générer des résultats appropriés. .pot Des fichiers de modèle, ainsi que des versions adaptées à différentes langues (comme le chinois). zh_CNCréer .po Et après compilation. .mo Fichier, mettre à l’intérieur. languages Dossier.
Prêt à être publié dans le catalogue officiel.
Si vous prévoyez de soumettre un plugin au répertoire de plugins de WordPress.org, vous devez vous assurer de la qualité du code et d’inclure les fichiers de métadonnées nécessaires. Par exemple, créez un… readme.txt Le fichier doit respecter un format spécifique. Les spécifications spécifiques de WordPressCes informations doivent inclure le nom du plugin, sa description, les étapes d’installation, les questions fréquentes, les journaux d’actualisation, etc. De plus, il serait judicieux d’ajouter un mécanisme de désinstallation qui permettrait de nettoyer les données stockées dans la base de données lorsque l’utilisateur supprime le plugin.
// 插件卸载时清理选项
function mfgp_uninstall_hook() {
delete_option( 'mfgp_custom_message' );
}
register_uninstall_hook( __FILE__, 'mfgp_uninstall_hook' ); résumés
En créant ce plugin de “ salutations quotidiennes ”, nous avons suivi l’intégralité du processus de développement de plugins pour WordPress : de l’établissement de la structure de base des fichiers, à l’ajout de fonctionnalités à l’aide des hooks d’action, en passant par la création d’interfaces de gestion, la mise en œuvre de normes de sécurité et la préparation à l’internationalisation. L’essentiel est de comprendre et d’utiliser habilement le système de hooks de WordPress, tout en donnant toujours la priorité à la sécurité et aux normes de codage. Cet exemple simple est le point de départ de votre voyage dans le développement de plugins : vous pourrez à partir de là explorer des fonctionnalités plus complexes telles que des codes courts personnalisés, des types d’articles personnalisés, des points d’extrémité REST API, et ainsi développer des plugins professionnels et puissants.
FAQ Foire aux questions
Dans quel répertoire doivent être placés les plugins ?
Les plugins WordPress doivent être placés dans le répertoire approprié du site web. wp-content/plugins/ Dans le répertoire, chaque plugin peut être un fichier PHP indépendant. Cependant, il est plus courant qu’un plugin se présente sous la forme d’un dossier portant le même nom que le plugin lui-même, contenant le fichier principal ainsi que d’autres ressources.
Pourquoi mon plugin n’apparaît-il pas dans la liste des plugins en arrière-plan (en mode administrateur) ?
Veuillez vérifier que le format des commentaires en tête du fichier du plugin principal (nom du plugin, description, etc.) est correct et complet. Assurez-vous que le fichier se trouve dans le répertoire approprié et que WordPress a les droits d’y accéder pour le lire. De plus, vérifiez qu’il n’y a pas d’espaceurs ou de caractères inutiles en début du code PHP.
Comment déboguer les erreurs PHP présentes dans un plugin ?
Dans wp-config.php Dans le document, il sera indiqué que... WP_DEBUG La constante est définie à trueCela permettra à WordPress d'afficher les erreurs, les avertissements et les notifications PHP sur la page. Veuillez noter que cette fonctionnalité ne doit être activée que dans un environnement de développement et qu'elle doit être désactivée avant la mise en ligne du site.
Quelle est la différence entre les fichiers functions.php des plugins et ceux des thèmes ?
Dans le cadre du sujet… functions.php Les fonctionnalités ajoutées sont liées au thème sélectionné. Lors du changement de thème, ces fonctionnalités peuvent devenir inutilisables. En revanche, les fonctionnalités fournies par des plugins sont indépendantes du thème ; elles sont toujours disponibles tant que le plugin est activé, quel que soit le thème utilisé. Pour des fonctionnalités universelles (c’est-à-dire pouvant être utilisées avec n’importe quel thème), le développement de plugins représente donc une meilleure option.
Comment permettre à d’autres développeurs d’élargir mon plugin ?
Vous pouvez permettre à d’autres développeurs d’élargir votre plugin en fournissant des “ crochets d’action ” (action hooks) et des “ crochets de filtre ” (filter hooks) personnalisés. do_action() Créez des “ hooks d’action ” qui effectueront les opérations nécessaires là où le code doit être injecté. apply_filters() Créez des « hooks » de filtre qui permettent aux autres plugins de modifier certaines valeurs de données contenues dans le vôtre. C’est un modèle de collaboration courant au sein de l’écosystème WordPress.
Quelle est la suite, quelle est la suite ?
Lecture approfondie et connaissances pratiques
Les articles suivants sont liés au sujet de cet article et peuvent faire l'objet d'une lecture plus approfondie. Il est souvent préférable de commencer par l'article qui se rapproche le plus de votre problème actuel, puis d'étendre progressivement la lecture aux sujets environnants.
- Comment choisir et personnaliser le thème WordPress parfait pour vous ?
- Guide de développement de plugins pour WordPress : Créez votre premier plugin personnalisé de zéro à un
- Devenir développeur de plugins pour WordPress : Un guide complet de A à Z
- De zéro à un : Guide complet et astuces pratiques pour construire un site web professionnel avec WordPress
- Guide complet pour le développement de plugins WordPress : De l’initiation à la maîtrise pour créer des extensions professionnelles