Les préparatifs avant le développement d'un plug-in.
Avant de commencer à coder, vous devez mettre en place un environnement de développement approprié et comprendre la structure de base des plugins WordPress. Cela inclut le choix de l'environnement serveur, de l'éditeur de texte ou de l'environnement de développement intégré, ainsi qu'une bonne compréhension de l'organisation des fichiers du plugin.
Configurez l'environnement de développement.
Un environnement de développement local efficace est essentiel. Il est recommandé d’utiliser des outils tels que XAMPP, MAMP ou Local by Flywheel pour configurer rapidement un serveur local incluant PHP, MySQL et Apache/Nginx. Ces outils permettent de simuler un environnement en ligne, vous permettant de développer et de déboguer sans affecter le site de production. En parallèle, choisissez un éditeur de code puissant, tel que Visual Studio Code ou PhpStorm, qui offre un excellent surlignage de la syntaxe, des suggestions de code et un support de débogage pour PHP, HTML, JavaScript et CSS.
Comprendre la structure de base des plugins
Les plugins WordPress sont essentiellement un ou plusieurs éléments situés dans /wp-content/plugins/ Les fichiers PHP situés dans le répertoire. Chaque plug-in nécessite au moins un fichier principal, dont le nom est généralement unique, par exemple. my-first-plugin.phpLa partie supérieure de ce fichier principal contient une section spéciale de commentaires, appelée “ informations d’en-tête du plug-in ”, que WordPress utilise pour identifier et afficher votre plug-in dans l’interface d’administration. Une bonne structure de plug-in devrait envisager d’organiser le code de différentes fonctionnalités dans différents sous-répertoires, par exemple : /includes/ Il est utilisé pour stocker les fichiers des classes principales./js/ et /css/ Pour stocker les ressources frontales,/languages/ À utiliser pour la localisation de documents.
Lectures recommandées Guichet unique pour le développement de plugins WordPress : de zéro à la publication en ligne.。
Créez votre premier fichier de plugin.
Maintenant, commençons à créer le fichier principal du premier plug-in. Nous allons commencer par écrire les informations d'en-tête du plug-in, puis ajouter une fonction simple pour vérifier si le plug-in fonctionne correctement.
Écrire les informations d'en-tête du plug-in.
Le fichier principal du plug-in doit commencer par un bloc de commentaires standard. Ce bloc de commentaires fournit à WordPress des métadonnées concernant le nom du plug-in, sa description, sa version, son auteur, etc. Voici un exemple très basique :
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习的简单 WordPress 插件,它将在文章底部添加一段自定义文本。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Ce code doit être placé en haut du fichier PHP principal du plug-in. Enregistrez ce fichier dans /wp-content/plugins/my-first-plugin/my-first-plugin.php Ensuite, connectez-vous à la page “ Plugins ” de l’interface d’administration de WordPress. Vous devriez voir apparaître un nouveau plugin nommé “ Mon premier plugin ”, que vous pouvez activer. Pour l’instant, il n’a aucune fonctionnalité.
Réaliser la première fonctionnalité simple.
Après l’activation du plugin, nous allons mettre en œuvre une fonction classique : l’ajout automatique d’un texte personnalisé à la fin de chaque article. Nous utiliserons… the_content Filtre. Modifiez votre fichier principal et ajoutez le code suivant sous les informations d'en-tête :
/**
* 在文章内容末尾添加自定义文本
*
* @param string $content 文章原始内容。
* @return string 修改后的内容。
*/
function mfp_add_footer_text( $content ) {
// 仅在主查询的单篇文章页面显示
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Merci d’avoir lu ! Cet article vous est présenté par [mon premier plugin].</em></p>'fonction mfp_add_footer_text() :
si ( il y a du texte personnalisé ) :
ajouter le texte personnalisé au contenu du pied de page ;
sinon :
ne rien faire.
// Appeler la fonction mfp_add_footer_text()
mfp_add_footer_text();
// Ajouter la fonction mfp_add_footer_text() au filtre ‘the_content’
add_filter( 'the_content', 'mfp_add_footer_text' ); Après avoir enregistré le fichier, il n’est pas nécessaire de rafraîchir l’arrière-plan. Accédez simplement à n’importe quel article du site Web et vous verrez le texte que nous avons ajouté apparaître à la fin de l’article. Cet exemple illustre l’un des principaux modèles de développement de plugins WordPress : l’utilisation d’accroches (Hooks) pour intervenir dans les processus principaux de WordPress.add_filter C'est une fonction utilisée pour connecter les filtres, et... the_content C'est l'un des nombreux filtres qui peuvent être utilisés pour modifier le contenu.
Lectures recommandées Le guide ultime du développement de plugins WordPress : créer un plugin professionnel de A à Z.。
Le développement de la fonctionnalité principale du plug-in.
Après avoir acquis les connaissances de base, nous pouvons explorer des fonctionnalités plus puissantes, telles que la création de pages d’administration et l’organisation du code en classes. Cela nous aide à créer des plugins plus complexes et plus faciles à maintenir.
Créer un menu de gestion des plugins et une page de paramètres.
De nombreux plugins nécessitent de fournir des options de configuration aux utilisateurs. Cela se fait généralement en ajoutant une page de menu à l'interface d'administration de WordPress. Voici un exemple d'ajout d'une page de menu de niveau supérieur :
**/
* Ajouter une entrée de menu de niveau supérieur dans le menu d'administration
*/
function mfp_add_admin_menu() {
add_menu_page(
'Paramètres de mon plugin', // Titre de la page
'Mon plugin', // Titre du menu
'manage_options', // Autorisations requises
'mfp-settings-page', // Slug du menu
'mfp_render_settings_page', // Fonction de rappel pour afficher la page
'dashicons-admin-generic', // Icône (facultatif)
80 // Position du menu (facultatif)
);
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );
/**
* Fonction de rappel pour afficher la page de paramètres
*/
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( 'mfp-settings-page' );
// 输出保存按钮
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="fr"/></form>
</div>
<?php
} Ce code utilise add_menu_page La fonction ajoute une nouvelle entrée de menu et spécifie celle-ci. mfp_render_settings_page La fonction sert à générer le code HTML de la page. Pour ajouter des champs de formulaire pouvant être enregistrés sur la page, vous devez également l'utiliser conjointement avec d'autres éléments. register_setting, add_settings_section et add_settings_field Nous utilisons des fonctions telles que register_setting() et set_site_option() pour enregistrer et définir les paramètres.
Utiliser la programmation orientée objet pour organiser le code.
Pour les plugins légèrement plus complexes, l'utilisation de la méthode orientée objet permet d'encapsuler les données et les fonctionnalités dans des classes, ce qui rend la structure du code plus claire et réduit les conflits de nommage. Voici un exemple de structure de classe simple :
class MyFirstPlugin {
/**
* 构造方法,用于初始化钩子
*/
public function __construct() {
add_action( 'init', array( $this, 'init' ) );
add_filter( 'the_content', array( $this, 'modify_content' ) );
}
/**
* ‘init’ 钩子的回调函数
*/
public function init() {
// 插件初始化代码,例如注册短代码、自定义文章类型等
load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
/**
* 修改文章内容的回调函数
*/
public function modify_content( $content ) {
// 类内部实现功能逻辑
if ( is_single() ) {
$content .= '<p>C'est le contenu ajouté par la méthode de classe.</p>';
}
return $content;
}
}
// 实例化插件类
new MyFirstPlugin(); En encapsulant les fonctionnalités dans MyFirstPlugin Dans une classe, tous les attributs et méthodes pertinents sont regroupés dans la même portée. Utilisez-les. array( $this, ‘method_name’ ) La syntaxe peut permettre de monter des méthodes de classe sur les crochets de WordPress. Ce mode de fonctionnement est recommandé pour la création de plugins de taille moyenne ou grande.
La publication et la maintenance des plugins.
Après le développement, vous devez vous assurer que le plug-in est sécurisé, efficace et prêt à être distribué aux autres utilisateurs. Cela implique un codage sécurisé, une optimisation des performances et une préparation finale à la publication.
Lectures recommandées De débutant à expert : guide complet et tutoriel pratique pour le développement de plugins WordPress.。
Sécurité et validation des données
La sécurité des plugins est une priorité absolue. Ne faites jamais confiance aux données saisies par les utilisateurs ou extraites directement de la base de données. Avant de traiter toutes les données, il est nécessaire de les valider, de les nettoyer et de les échapper.
* 验证 (Validation):检查数据是否符合预期格式(如是否为邮箱、数字)。可以使用 filter_var Ou de WordPress. sanitize_* Une série de fonctions.
* Nettoyage (Sanitisation) : supprimer les caractères non sécurisés des données avant de les stocker dans une base de données ou de les utiliser pour une sortie. Par exemple, utiliser < sanitize_text_field Traiter la saisie de texte.
* Échappement : Lors de l'affichage de données en HTML, JavaScript ou URL, il est nécessaire de les échapper en fonction du contexte afin d'éviter les attaques par script intersite. WordPress fournit cette fonctionnalité. esc_html, esc_js, esc_url et esc_attr et d'autres fonctions.
Par exemple, lors de l'affichage d'une variable extraite d'une base de données :
// 假设 $user_input 是从数据库获取的文本
echo '<div class="message">'`. esc_html($user_input)`.'</div>';
// 或者用于 HTML 属性
echo '<input type="text" value="' . esc_attr( $user_input ) . '">'; Optimisation des performances et bonnes pratiques
Un bon plug-in devrait avoir un impact minimal sur les performances du site. Suivez les meilleures pratiques suivantes :
* Charger les ressources selon les besoins : utiliser wp_enqueue_script et wp_enqueue_style En utilisant des fonctions, vous pouvez charger vos fichiers CSS et JavaScript uniquement sur les pages qui en ont besoin. Pour ce faire, wp_enqueue_scripts Le crochet (à l'avant) et admin_enqueue_scripts Il faut utiliser un hook (en arrière-plan) pour le monter.
* Utiliser les hooks de manière judicieuse : évitez d'exécuter un grand nombre de codes inutiles à chaque chargement de page. Montez vos fonctions sur le hook le plus approprié et utilisez des balises conditionnelles (comme <). is_admin(), is_single()) pour limiter la portée de l'exécution du code.
* Optimisation des requêtes de base de données : minimiser les requêtes SQL directes et utiliser en priorité les API de WordPress (par exemple, WP_Query, get_postsSi une requête personnalisée doit être effectuée, veillez à utiliser… $wpdb Créez une classe et configurez correctement le cache de requête.
* Fournir une option de nettoyage lors du désinstallation : Il faut se demander si les données créées par le plug-in (telles que les tables de base de données, les options, etc.) doivent être nettoyées lorsque l’utilisateur supprime le plug-in. Cela peut être fait en enregistrant un hook de désinstallation (dans un fichier séparé).
résumés
Cet article vous a guidé à travers le processus de développement d’un plugin WordPress. Nous avons commencé par la configuration de l’environnement de développement et la compréhension de la structure de base, puis nous avons créé notre premier fichier plugin fonctionnel. Nous avons ensuite exploré des sujets plus avancés tels que l’ajout d’une interface d’administration et l’organisation du code selon une approche orientée objet, avant de souligner l’importance de la sécurité, de la performance et de la préparation à la publication. Rappelez-vous que le cœur du développement de plugins réside dans l’utilisation judicieuse du vaste système de hooks de WordPress pour étendre ses fonctionnalités. En suivant les normes de codage sécurisé, en optimisant les performances et en maintenant un code propre, vous serez en mesure de créer des plugins puissants et fiables, contribuant ainsi à la communauté mondiale de WordPress. La meilleure façon d’améliorer vos compétences consiste à pratiquer régulièrement et à lire le code source des plugins de référence et du noyau WordPress.
FAQ Foire aux questions
Pour développer un plugin WordPress, faut-il maîtriser le PHP ?
Bien qu’il ne soit pas nécessaire d’être un expert, une solide base en PHP est indispensable. Vous devez comprendre la syntaxe PHP, les fonctions, les tableaux, la programmation orientée objet, etc., car le noyau de WordPress et ses plugins et thèmes sont tous écrits en PHP. Une bonne connaissance du HTML, du CSS et du JavaScript est également essentielle pour développer des plugins avec des interactions frontales.
Comment déboguer mon plug-in WordPress ?
Tout d’abord, assurez-vous que… wp-config.php L'activation du mode de débogage de WordPress dans le fichier. Veuillez noter que vous devez avoir un compte WordPress pour utiliser cette fonctionnalité. WP_DEBUG La constante est définie sur « true ». Cela affichera les erreurs, les avertissements et les notifications de PHP à l'écran ou les enregistrera dans un fichier journal. Ensuite, utilisez < error_log Des fonctions ou des outils tels que le plug-in Query Monitor permettent de suivre les valeurs des variables et le processus d’exécution. Les outils de développement du navigateur (onglets Console et Réseau) sont également indispensables pour déboguer le JavaScript et les requêtes AJAX.
Comment mon plugin peut-il être compatible avec différentes versions de WordPress ?
Lors du développement, vous devez consulter régulièrement la documentation officielle pour connaître les obsolescences et les modifications des fonctions entre les différentes versions. Utilisez la logique conditionnelle et les vérifications de version pour assurer la compatibilité descendante. Par exemple, vous pouvez utiliser : function_exists() Vérifiez si une fonction est disponible et, si ce n’est pas le cas, proposez une implémentation alternative. En outre, indiquez clairement dans le fichier readme.txt du plug-in la gamme de versions de WordPress que vous avez testées.
Comment internationaliser mon plug-in ?
WordPress utilise la pile technologique GNU gettext pour assurer son internationalisation. Vous devez utiliser ... __() Ou _e() Les fonctions encapsulent tous les chaînes de caractères nécessitant une traduction. Ensuite, à l'aide d'un outil de génération de fichiers POT (comme Poedit), créez un modèle de traduction permettant aux traducteurs de générer des fichiers .mo et .po dans la langue correspondante. Enfin, utilisez-le. load_plugin_textdomain() La fonction charge le fichier de langue lors de l'initialisation du plug-in.
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 complet pour le développement de plugins WordPress : De l’initiation à la maîtrise pour créer des extensions professionnelles
- Développement de plugins pour WordPress : de l’initiation à la maîtrise : Créez votre premier plugin personnalisé
- De zéro à un : Guide complet pour développer votre premier plugin WordPress pas à pas