Bases des plugins WordPress et environnement de développement
Pour développer des plugins pour WordPress, il est d’abord nécessaire de comprendre ce qu’est un plugin. Un plugin est essentiellement un ou plusieurs fichiers PHP contenant des commentaires d’en-tête dans un format spécifique, qui permettent de se déclarer à WordPress. Il permet d’élargir ou de modifier les fonctionnalités de base de WordPress en utilisant l’API abondante fournie par ce dernier (tels que les hooks d’action, les filtres, les fonctions de base de données, etc.), sans avoir à modifier le code source de WordPress lui-même.
Pour commencer le développement, vous aurez besoin d’un environnement de développement local. Cela comprend généralement un serveur local (tel que XAMPP, MAMP ou Local by Flywheel), PHP (dans une version compatible avec les exigences de WordPress), une base de données MySQL, ainsi qu’un éditeur de code (comme VS Code ou PhpStorm). Il est fortement conseillé de réaliser le développement et le débogage dans cet environnement local pour éviter d’affecter le site web en ligne.
Structure de base des fichiers des plugins
Un plugin le plus simple peut ne contenir qu’un seul fichier. Cependant, pour une meilleure lisibilité et une maintenance plus facile du code, il est conseillé de suivre une structure bien définie. Un répertoire de plugin typique peut comprendre : le fichier principal du plugin (par exemple…your-plugin-name.php…, unincludesUn dossier contenant les classes ou fonctions essentielles, et un autre…adminUn dossier (contenant le code lié au backend) et un autre…publicUn dossier (contenant le code lié au front-end) et un autre…assetsDossier contenant des fichiers JavaScript, CSS et images, ainsi que des dossiers de packs de langues et de templates (optionnels).
Lectures recommandées Guichet unique pour le développement de plugins WordPress : des tutoriels de base aux techniques avancées。
Le fichier principal du plugin constitue le point d’entrée pour ce dernier, et les commentaires situés en tête de ce fichier sont d’une importance capitale. WordPress lit ces commentaires pour afficher des informations sur le plugin dans l’administration.
Créez votre premier plugin.
Commençons par un exemple classique du “Hello World” ; cela vous aidera à vous familiariser avec le processus de création de plugins ainsi qu’avec les normes qui y sont associées.
Rédiger le fichier du plugin principal
Tout d'abord, dans le répertoire d'installation de WordPress,wp-content/pluginsÀ l'intérieur du dossier, créez un nouveau dossier, par exemplemy-first-pluginDans ce dossier, créez un fichier PHP et nommez-le…my-first-plugin.php。
Ouvrez ce fichier et saisissez le code suivant. La section d’information sur le plugin (Plugin Header) est obligatoire ; elle indique à WordPress qu’il s’agit d’un plugin.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个学习插件开发的示例插件,它将在文章内容顶部显示“Hello World!”。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* 在文章内容前添加“Hello World”
*
* @param string $content 原始文章内容。
* @return string 修改后的文章内容。
*/
function mfp_add_hello_world( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p style="background-color:#f0f0f0; padding:10px;"><strong>Hello World ! C’est mon premier plugin.</strong></p>';
return $custom_text . $content;
}
return $content;
}
add_filter( 'the_content', 'mfp_add_hello_world' ); Après avoir enregistré le fichier, connectez-vous à votre administration WordPress et accédez à la page des “ Plugins ”. Vous devriez voir “ Mon premier plugin ” dans la liste des plugins. Activez-le, puis visitez un article sur votre site ; le paragraphe “ Hello World! ” sera ajouté en haut du contenu de l’article.
Lectures recommandées Nous allons vous apprendre, étape par étape, à maîtriser le développement d’extensions WordPress à partir de zéro.。
Comprendre les éléments clés du code
Ce code démontre un concept clé du développement avec WordPress : les filtres (Filters). Nous avons défini une fonction…mfp_add_hello_worldIl reçoit le contenu de l'article.$contentEn tant que paramètre, et retournez le contenu modifié. Ensuite, nous utilisons…add_filter()La fonction permet d’installer cette fonction personnalisée dans le noyau de WordPress.the_contentCe filtre est activé (il est « accroché » aux fonctionnalités appropriées). WordPress l’applique lors de son exécution.the_content()Lorsque cela se produit, toutes les fonctions montées sur ce crochet sont exécutées une par une, nous permettant ainsi de modifier le résultat affiché.
Les conditions de contrôle dans le codeis_single() && in_the_loop() && is_main_query()Il s’agit de s’assurer que nos modifications n’affectent que l’article spécifique dans la requête principale, et non la page de liste des articles ou d’autres parties du site. C’est une pratique importante pour développer des plugins efficaces et sans effets secondaires.
Technologies clés pour le développement de plugins
Pour développer des plugins professionnels et puissants, il est essentiel de maîtriser plusieurs API clés fournies par WordPress.
使用动作钩子与过滤器钩子
Les hooks sont les fondamentaux de l’architecture des plugins WordPress. Ils se divisent en deux types : les actions (Actions) et les filtres (Filters). Les hooks d’action sont déclenchés à des moments précis du fonctionnement de WordPress (par exemple, lors de la publication d’un article ou de l’affichage de l’interface d’administration), vous permettant d’exécuter du code. Les hooks de filtre, quant à eux, vous permettent de modifier des données (comme le contenu ou le titre d’un article) avant qu’elles ne soient utilisées par WordPress.
utiliseradd_action()Voici une action de montage (montage d’un élément dans un système). Par exemple, la création d’une table de base de données lors de l’activation d’un plugin est une demande fréquente :
function mfp_create_custom_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'my_custom_data';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
data varchar(255) NOT NULL,
created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'mfp_create_custom_table' ); Il est utilisé ici.register_activation_hookIl s’agit d’une fonction de registration spéciale, utilisée pour spécifier les actions à exécuter lors de l’activation d’un plugin.
Lectures recommandées Commencer de zéro : pourquoi choisir le développement de plugins pour WordPress ?。
Créer un menu de gestion et une page de paramétrage.
Disposer d'une page de paramétrage en back-end pour votre plugin est un signe distinctif d'un plugin professionnel. L'utilisation de l’API Settings de WordPress permet de créer des pages de paramétrage de manière sûre et conforme aux normes.
Le code suivant montre comment ajouter une page de menu secondaire sous le menu principal “ Paramètres ” :
// 在管理后台初始化时添加菜单
add_action( 'admin_menu', 'mfp_add_admin_menu' );
function mfp_add_admin_menu() {
add_options_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'my-plugin-settings', // 菜单slug
'mfp_render_settings_page' // 用于渲染页面的回调函数
);
}
function mfp_render_settings_page() {
?>
<div class="wrap">
<h1></h1>
<form action="/fr/options.php/" method="post" data-trp-original-action="options.php">
<?php
settings_fields( 'mfp_settings_group' ); // 输出安全字段
do_settings_sections( 'my-plugin-settings' ); // 输出设置区域
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="fr"/></form>
</div>
<?php
}
// 初始化设置
add_action( 'admin_init', 'mfp_settings_init' );
function mfp_settings_init() {
register_setting( 'mfp_settings_group', 'mfp_options' ); // 注册一个设置选项组
add_settings_section(
'mfp_section_basic',
'基本设置',
null,
'my-plugin-settings'
);
add_settings_field(
'mfp_field_text',
'示例文本框',
'mfp_field_text_render',
'my-plugin-settings',
'mfp_section_basic'
);
}
function mfp_field_text_render() {
$options = get_option( 'mfp_options' );
?>
<input type='text' name='mfp_options[text_field]' value='<?php echo esc_attr( $options['text_field'] ?? '' ); ?>'>
<p class="description">Ceci est un exemple de champ de texte.</p>
<?php
} Sécurité des plugins, internationalisation et préparation à la publication
Les plugins développés doivent être soumis à des mesures de sécurité renforcées, être adaptés pour différentes langues (internationalisation), et être correctement emballés avant de pouvoir être mis à la disposition du public.
Validation des données, échappement et sécurité
Ne faites jamais confiance aux entrées des utilisateurs ou aux données externes. Tout ce qui provient de l'extérieur doit être vérifié et validé avant d'être utilisé.$_GET、$_POST、$_REQUESTLes données provenant des bases de données doivent toutes être vérifiées (Validation) et échappées (Escaping) avant leur utilisation.
- Vérification : vérifiez si les données sont conformes au format attendu (par exemple, s'il s'agit d'une adresse e-mail ou d'un nombre). Utilisez des fonctions telles que IsEmail() ou IsNumber().
is_email()、intval()、sanitize_text_field()。 - Échappement : Lors de l'exportation de données vers du HTML, du JavaScript ou une URL, veillez à ce que les caractères spéciaux soient traités correctement afin d'éviter les attaques XSS. Utilisez des fonctions telles que <
esc_html()、esc_js()、esc_url()、wp_kses_post()。
Dans les requêtes SQL, il est obligatoire d’utiliser…$wpdb->prepare()Préparer les paramètres de manière appropriée permet de prévenir les injections SQL.
Réaliser l'internationalisation des plugins.
L’internationalisation (i18n) permet de traduire votre plugin dans d’autres langues. Cela nécessite deux étapes : la mise en évidence des chaînes de caractères pouvant être traduites et le chargement des fichiers de texte correspondants.
Tout d’abord, les définitions nécessaires ont été mises en place en tête du fichier principal du plugin.Text DomainetDomain PathEnsuite, pour toutes les chaînes de caractères qui doivent être traduites dans le plugin, utilisez la fonction de traduction pour les encadrer. Par exemple :__('Hello World', 'my-first-plugin')Utilisé pour afficher les traductions dans PHP.esc_html_e('Settings', 'my-first-plugin')Utilisé pour échapper aux caractères spéciaux et pour les afficher tels qu’ils sont.
Lors de l’initialisation du plugin (par exemple, lors de son utilisation…)initAction), il est nécessaire de charger le fichier de traduction :
function mfp_load_textdomain() {
load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'init', 'mfp_load_textdomain' ); Par la suite, vous pouvez utiliser des outils tels que Poedit pour créer….potDes fichiers modèles, destinés aux traducteurs pour leur permettre de créer des traductions..po/.moFichiers de langue.
Vérification finale et emballage
Avant la publication, veuillez effectuer les vérifications suivantes :
1. Le code respecte les normes de codage de WordPress.
2. Toutes les fonctionnalités ont été entièrement testées, y compris leur activation, leur désactivation et leur désinstallation (utilisation).register_uninstall_hookNettoyer les données.
3. Tout le code de débogage ainsi que les résultats d'affichage temporaires ont été supprimés.
4. Des informations détaillées ont été créées.readme.txtLe fichier doit respecter les exigences officielles de WordPress ; il sera affiché sur la page du répertoire des plugins.
5. Assurez-vous que le nom du répertoire des plugins et le nom du fichier principal soient uniques afin d’éviter tout conflit avec d’autres plugins.
Enfin, compressez tout le dossier du plugin en un fichier ZIP. Vous pourrez ensuite le télécharger et l’installer directement depuis l’administration de WordPress, ou le soumettre au répertoire officiel des plugins de WordPress.
résumés
Le développement de plugins pour WordPress est un processus qui consiste à transformer des idées en fonctionnalités réelles, et cela repose sur une compréhension approfondie de l’architecture de base de WordPress, en particulier de son API de crochets (hook API). Commencer par créer un simple plugin “ Hello World ” est un bon moyen de se familiariser avec les bases, puis progresser en apprenant à construire des interfaces d’administration, à gérer les données de manière sûre, à interagir avec les bases de données, et enfin à mettre en place des fonctionnalités d’internationalisation. C’est le chemin de croissance pour tout développeur de plugins. Respecter les normes de codage sécurisé et utiliser des interfaces standard telles que l’API Settings est essentiel pour garantir la qualité, la compatibilité et la sécurité des plugins. En pratiquant régulièrement et en s’inspirant du code source de WordPress ainsi que d’autres plugins de qualité, vous pourrez créer des extensions professionnelles, fiables et populaires.
FAQ Foire aux questions
Quelles connaissances préalables sont nécessaires pour développer des plugins pour WordPress ?
Vous devez disposer de connaissances de base en programmation PHP, ainsi qu'une compréhension des langages HTML, CSS et JavaScript. Une familiarité avec les fonctionnalités de base de WordPress (gestion d'articles, de pages, de menus) et une connaissance de ses concepts clés (types d'articles, classification, métadonnées) sera très utile pour le développement. Une connaissance de base des bases de données MySQL sera également bénéfique.
Comment déboguer mon plugin WordPress ?
Tout d’abord, assurez-vous que…wp-config.phpActiver dans le fichier.WP_DEBUGetWP_DEBUG_LOGDe cette manière, les messages d’erreur seront enregistrés dans le fichier de journal (log file) et ne seront pas affichés directement aux visiteurs. En outre, il est possible d’utiliser…error_log()La fonction écrit des informations de débogage personnalisées dans le journal. Pour des logiques complexes, l’utilisation d’outils de débogage professionnels tels que Xdebug en combinaison avec un IDE (comme PhpStorm) est la méthode la plus efficace.
Comment mon plugin peut-il communiquer avec des services tiers (tels que des API) ?
WordPress offre une API HTTP puissante (comme…)wp_remote_get()、wp_remote_post()Il s’agit d’une bibliothèque conçue pour gérer les demandes HTTP, et elle est plus performante que les fonctions PHP natives.file_get_contents()L’utilisation de la fonction `curl` peut être plus sûre et présenter une meilleure compatibilité. Lorsque vous les utilisez, n’oubliez pas de gérer d’éventuelles erreurs et de définir des temps d’attente (timeout) appropriés. Pour les API qui doivent être appelées fréquemment, pensez à utiliser la technologie des « Transients » pour mettre en cache les résultats et améliorer les performances.
Comment nommer les classes et les fonctions dans un plugin pour éviter les conflits ?
Afin d’éviter les conflits avec les noms de fonctions ou de classes d’autres plugins ou thèmes, il est nécessaire d’utiliser un préfixe unique. Il est généralement conseillé d’utiliser l’abréviation ou le nom complet du plugin en tant que préfixe. Par exemple, si votre plugin s’appelle “Super Tool”, vous pouvez nommer la fonction de la manière suivante :stool_save_data()Les noms de classes peuvent être…Super_Tool_AdminUne autre méthode plus moderne et plus sûre consiste à utiliser les espaces de noms (Namespaces) en PHP, ce qui requiert que l’environnement d’exécution de votre plugin prenne en charge la version PHP 5.3 ou une version ultérieure.
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.
- 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
- Guide ultime pour la création de sites web : Analyse complète du processus de développement professionnel de zéro à un
- Création de sites web du début à la fin : Guide pratique complet et analyse technique pour la création de sites web professionnels
- Guide complet pour le développement de plugins WordPress : De l’initiation à la maîtrise pour créer des extensions professionnelles