La structure de base et le principe de fonctionnement des plugins WordPress
Pour développer un plugin pour WordPress, il est nécessaire de comprendre sa structure de base ainsi que son fonctionnement au cours du cycle de vie de WordPress. Un plugin est essentiellement constitué d’un ou plusieurs fichiers PHP qui utilisent l’abondance d’API (interfaces de programmation d’applications) fournies par WordPress afin d’élargir ou de modifier les fonctionnalités du site web.
La pierre angulaire des plugins est l’information contenue dans leur en-tête, qui est placée en haut du fichier principal du plugin. Ces informations sont rédigées dans un format de commentaire PHP spécifique et servent à indiquer à WordPress le nom du plugin, sa description, sa version, son auteur, ainsi que d’autres métadonnées. Par exemple, pour un plugin nommé… my-first-plugin.php Le fichier peut commencer par les informations suivantes :
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习插件开发的简单示例。
* Version: 1.0.0
* Author: 开发者姓名
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ WordPress interagit avec ses plugins grâce à un mécanisme appelé “ hooks ”. Il existe deux types de hooks : les actions (Actions) et les filtres (Filters). Les hooks d’action vous permettent d’insérer votre propre code à des moments précis du fonctionnement de WordPress, par exemple après la publication d’un article ou lors du chargement des styles du haut de la page. Les hooks de filtre, quant à eux, vous permettent de modifier les données générées par WordPress au cours de son exécution, comme le contenu des articles ou la longueur des extraits. Comprendre et maîtriser l’utilisation des hooks est essentiel pour développer des plugins efficaces.
Lectures recommandées Compréhensible même pour les débutants : Guide complet pour maîtriser le développement de plugins WordPress à partir de zéro。
Comprendre l’organisation des fichiers de plugins
Un plugin simple peut ne contenir qu’un seul fichier principal. Cependant, à mesure que le nombre de fonctionnalités augmente, une structure de fichiers bien organisée devient essentielle. Généralement, un répertoire de plugin complet comprend le fichier principal du plugin, ainsi que d’autres fichiers qui contiennent les différentes composantes de celui-ci (comme les classes, les fichiers de configuration, les fichiers de ressources, etc.). my-plugin.php… utilisé pour contenir des fonctions et des classes. includes Dossier utilisé pour stocker les ressources frontales. assets Dossier contenant des fichiers CSS, JavaScript et images, ainsi que des fichiers destinés à la traduction. languages Dossiers, ainsi que ceux utilisés pour les modèles d'interface utilisateur. templates Dossier. Cette structure modulaire facilite la maintenance du code et la collaboration au sein de l’équipe.
Créez votre premier plugin simple.
Commençons par un exemple concret. Nous allons créer un plugin qui ajoute automatiquement une déclaration de droits d’auteur personnalisée à la fin de tous les articles et du contenu des pages d’un site web.
Tout d’abord, vous devez vous rendre dans le répertoire d’installation de WordPress. wp-content/plugins Dans le dossier, créez un nouveau dossier et nommez-le… my-copyright-noticeEnsuite, créez un fichier PHP principal dans ce dossier, par exemple en le nommant « main.php ». my-copyright-notice.php。
Fonction d'ajout de contenu à mettre en œuvre
Nous utiliserons des crochets de filtrage. the_content Pour mettre en œuvre cette fonction, ouvrez le fichier principal, ajoutez d’abord les informations relatives à la tête du plugin, puis rédigez la fonction principale.
<?php
/**
* Plugin Name: 自动版权声明
* Description: 在文章和页面内容末尾自动添加版权信息。
* Version: 1.0
* Author: WordPress 学习者
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* 在内容末尾添加版权声明的函数
*
* @param string $content 原始的文章内容。
* @return string 添加了版权声明后的内容。
*/
function mycn_add_copyright_to_content( $content ) {
// 仅对主循环内的文章和页面生效
if ( is_single() || is_page() ) {
$copyright_text = '<p><em>© Déclaration de droits d’auteur : Ce texte est la propriété de ce site web et ne peut être reproduit sans autorisation.</em></p>';
$content .= $copyright_text;
}
return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'mycn_add_copyright_to_content' ); Après avoir enregistré le fichier, connectez-vous à votre administration WordPress et accédez à la page des “ Plugins ”. Vous devriez y voir le plugin “ Automatic Copyright Statement ”. Une fois ce plugin activé, lorsque vous consultez n’importe quel article ou page, le texte de copyright que vous avez défini apparaîtra en bas du contenu. Bien que cet exemple soit simple, il montre de manière complète le processus entier allant de la création du plugin à son activation et à son utilisation.
Lectures recommandées Maîtriser le développement de plugins pour WordPress à partir de zéro : Principes, pratique et astuces avancées。
Interagir avec la base de données en utilisant l’API de WordPress
Les plugins avancés nécessitent généralement l’stockage et la récupération de données. WordPress propose des classes très pratiques pour gérer la base de données. wpdb L’API des options vous permet de manipuler la base de données de manière sûre, sans avoir à écrire vous-même des instructions SQL.
Pour les données simples sous forme de paires clé-valeur, telles que les paramètres de configuration des plugins, l’utilisation de l’API des options est fortement recommandée. Vous pouvez ainsi… add_option(), get_option(), update_option() et delete_option() Des fonctions telles que… sont utilisées pour gérer les données. Ces fonctions s’occupent automatiquement de la sérialisation des données et de leur stockage. wp_options Dans le tableau.
Créer une table de base de données personnalisée.
Lorsque vous avez besoin de stocker des données structurées et complexes (comme des commandes ou des enregistrements de soumissions de formulaires), il peut être nécessaire de créer des tables de base de données personnalisées. Cela se fait généralement lors de l’activation d’un plugin. Pour ce faire, vous devez écrire une fonction et l’enregistrer dans le système de gestion de la base de données. register_activation_hook Sur ce crochet spécial.
Le fichier principal de votre plugin peut contenir du code similaire au suivant :
/**
* 插件激活时创建自定义数据库表
*/
function myplugin_create_custom_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'myplugin_data'; // 获取带前缀的表名,如 wp_myplugin_data
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
user_id int NOT NULL,
data_value text NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
// 引入 WordPress 升级所需的文件
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
// 注册激活钩子
register_activation_hook( __FILE__, 'myplugin_create_custom_table' ); dbDelta() Les fonctions sont des outils puissants de WordPress permettant de créer ou de mettre à jour des tables de base de données. Elles comparent la structure des tables existantes avec votre instruction SQL et ne procèdent qu’aux modifications nécessaires. Notez bien…dbDelta() Je suis très sensible à la formatation des instructions SQL (comme la définition des clés et l’indentation).
Construire une interface de gestion des plugins et mettre en œuvre des pratiques de sécurité
Un plugin professionnel nécessite généralement une page de configuration en back-office permettant aux utilisateurs de modifier leurs paramètres. Vous pouvez utiliser l“” API des paramètres » de WordPress pour créer cette page de manière standardisée et sécurisée. Cet API s’occupe de la validation des formulaires, des champs sécurisés (tels que les champs de type « nonce ») ainsi que du stockage des données de configuration, ce qui simplifie considérablement le processus de développement.
Lectures recommandées Thème WordPress personnalisé : le guide complet pour créer de zéro l’apparence unique de votre site web。
Page de configuration des plugins
Tout d’abord, vous devez utiliser… add_action() La fonction permet de monter (ou d’associer) un élément à un autre. admin_menu La fonction de rappel (callback) du crochet d’action est utilisée pour ajouter un élément de menu et une page. Ensuite, dans la fonction de rappel de cette page, la fonction de configuration de l’API est appelée pour construire un formulaire.
Voici un exemple simplifié démontrant comment ajouter une page de menu principal et enregistrer un champ de configuration :
/**
* 添加插件设置菜单
*/
function myplugin_add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'myplugin-settings', // 菜单 slug
'myplugin_settings_page', // 显示设置页面的回调函数
'dashicons-admin-generic', // 图标
80 // 菜单位置
);
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
/**
* 初始化插件设置
*/
function myplugin_settings_init() {
// 注册一个新的设置到 “myplugin_settings” 页面
register_setting( ‘myplugin_settings’, ‘myplugin_options’ );
// 在页面中添加一个区域
add_settings_section(
‘myplugin_section’,
‘主要设置’,
null, // 可选的区域描述回调函数
‘myplugin_settings’
);
// 向区域中添加一个字段
add_settings_field(
‘api_key’,
‘API 密钥’,
‘myplugin_api_key_field_callback’, // 渲染字段 HTML 的回调函数
‘myplugin_settings’,
‘myplugin_section’
);
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );
/**
* 渲染 API 密钥字段
*/
function myplugin_api_key_field_callback() {
$options = get_option( ‘myplugin_options’ );
?>
<input type="‘text’" name="‘myplugin_options[api_key]’" value="‘NO NUMERIC NOISE KEY" 1003’>
<?php
}
/**
* 设置页面的显示内容
*/
function myplugin_settings_page() {
?>
<div class="“wrap”">
<h1></h1>
<form action="/fr/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
<?php
settings_fields( ‘myplugin_settings’ ); // 输出安全字段
do_settings_sections( ‘myplugin_settings’ ); // 输出设置区域和字段
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="fr"/></form>
</div>
<?php
} Respecter les normes de sécurité de WordPress
La sécurité est de la plus haute importance dans le développement de plugins. Il est essentiel de traiter toutes les données saisies par les utilisateurs, ainsi que les données générées par les plugins. WordPress met à disposition une série de fonctions pour vous aider à cela :
* 转义输出:使用 esc_html(), esc_attr(), esc_url() et wp_kses_post() Des fonctions telles que celles-ci sont utilisées pour s’assurer que les données affichées sur la page sont sécurisées.
* 验证和清理输入:在处理表单提交的数据前,使用 sanitize_text_field(), intval(), sanitize_email() Nettoyer les fonctions telles que…
* Nonce 验证:对于所有涉及状态更改的操作(如表单提交、AJAX 请求),使用 wp_nonce_field(), wp_create_nonce() et wp_verify_nonce() Cela vise à prévenir les attaques de falsification de demandes跨-sites (Cross-Site Request Forgery, CSRF).
* 能力检查:使用 current_user_can() Une fonction est utilisée pour vérifier si l'utilisateur actuel dispose des autorisations nécessaires pour effectuer une certaine opération. ‘edit_posts’, ‘manage_options’)。
résumés
Le développement de plugins pour WordPress est un processus systématique qui commence par la compréhension de la structure de base (les “ hooks ” et les informations de tête du fichier de configuration) pour ensuite s’approfondir dans la mise en œuvre des fonctionnalités, la gestion des données, la construction des interfaces et le renforcement de la sécurité. En partant d’un plugin simple, tel qu’un plugin affichant une déclaration de droits d’auteur, les développeurs peuvent rapidement acquérir une compréhension intuitive du flux de travail associé à la création de plugins. Par la suite, ils apprennent à utiliser l’API des options (Options API) pour personnaliser davantage les comportements des plugins. wpdb L’opération de traitement des données au sein des classes est une étape essentielle pour stocker des informations complexes. Enfin, la création d’une interface utilisateur de back-end conviviale à l’aide des API définies, ainsi que le respect strict des normes de codage sécurisé de WordPress, sont des facteurs clés pour garantir que l’extension soit professionnelle, fiable et largement adoptée. La pratique continue, ainsi que la lecture du code source des fonctionnalités principales de WordPress et d’autres extensions de qualité, constituent les meilleures façons d’améliorer ses compétences en développement.
FAQ Foire aux questions
Un plugin WordPress nécessite au minimum plusieurs fichiers. Ces fichiers comprennent généralement les éléments suivants :
Un plugin WordPress complet peut ne contenir qu’un seul fichier PHP. Tant que ce fichier comprend les commentaires d’en-tête nécessaires et réalise les fonctionnalités souhaitées, WordPress peut le reconnaître et l’activer. Pour les plugins plus complexes, il est conseillé de les diviser en plusieurs fichiers et dossiers afin d’en faciliter la maintenance.
Comment faire en sorte qu'un plugin prenne en charge la traduction multilingue ?
WordPress utilise la technologie GNU gettext pour mettre en œuvre l’internationalisation (i18n). Vous devez effectuer les étapes suivantes : Tout d’abord, dans la partie en tête du plugin et pour toutes les chaînes de caractères qui doivent être traduites, utilisez des conventions spécifiques… __(‘文本’, ‘your-text-domain’) Ou _e(‘文本’, ‘your-text-domain’) Emballer de telles fonctions, puis utiliser des outils comme Poedit pour générer le fichier de modèle .pot, ainsi que les fichiers .po et .mo correspondants pour la langue concernée. zh_CN.poEnfin, par… load_plugin_textdomain() La fonction charge les fichiers de traduction lors de l’initialisation du plugin.
Comment charger correctement les fichiers JavaScript et CSS contenus dans un plugin ?
Afin de garantir la compatibilité et d’éviter les conflits, il ne faut pas lier directement les fichiers de ressources dans le HTML. Pour les ressources frontales, il convient d’utiliser… wp_enqueue_script() et wp_enqueue_style() Les fonctions, et les monter sur wp_enqueue_scripts Sur les crochets d’action. Pour les ressources de la page d’administration des administrateurs, il est nécessaire de les monter (ou de les associer) à ces crochets. admin_enqueue_scripts Sur les crochets. Ces fonctions vous permettent de spécifier les dépendances et les versions, et assurent que les mêmes ressources ne soient chargées qu’une seule fois.
Comment effectuer le débogage lors du développement d'un plugin ?
WordPress offre de puissants outils de débogage. Tout d’abord, sur le site web… wp-config.php Dans le document, il sera indiqué que... WP_DEBUG La constante est définie à trueCela affichera directement les erreurs, les avertissements et les notifications PHP sur la page. Vous pouvez également les activer en même temps. WP_DEBUG_LOGEnregistre les erreurs dans… wp-content/debug.log (Fichiers) et WP_DEBUG_DISPLAY(Contrôle l'affichage ou non sur la page). De plus, utilisez… error_log() Écrire des logs dans un fichier personnalisé à l’aide de fonctions est également une méthode efficace pour suivre les variables et les étapes d’un processus.
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