Le plein d’astuces sur le dĂ©veloppement WordPress

En savoir plus sur le développement WordPress sur le blog de Mehdi Nazari, un développeur WordPress.

Posted in Uncategorized

Créer un plugin Hello World WordPress en 3 étapes

CrĂ©er un plugin WordPress simple est rapide et facile. dans ce court tutoriel, je vais vous montrer comment crĂ©er un plugin WordPress personnalisĂ© et imprimer le texte “Hello world” dans sa page d’administration. cet article contient Ă©galement 10 conseils utiles pour les dĂ©veloppeurs WordPress dĂ©butants.

Si vous ne le savez pas dĂ©jĂ , les plugins WordPress sont stockĂ©s dans le dossier wp-content/plugins accessible depuis votre rĂ©pertoire racine WordPress.

En 2022, environ 60 000 plugins sont disponibles en téléchargement sur le site officiel de WordPress.

Dans ce didacticiel simple, nous souhaitons crĂ©er un plug-in WordPress simple et le placer dans le dossier des plugins, puis l’activer Ă  partir du panneau d’administration WordPress (wp-admin).

La crĂ©ation d’un simple plugin “Hello World” dans WordPress peut se faire en 3 Ă©tapes faciles :

  1. création du fichier principal du plugin
  2. Ă©crire les en-tĂȘtes du plugin dans le fichier crĂ©Ă© (en-tĂȘtes : informations sur le plugin et l’auteur)
  3. fonctions d’Ă©criture pour afficher le texte “Hello World” dans une page d’administration dans le panneau WordPress

Alors on y va :

1- Créez votre fichier principal du plugin hello world

Le fichier principal du plugin contiendra tous nos en-tĂȘtes et fonctions qui seront automatiquement dĂ©couverts par WordPress . ce fichier doit se trouver dans un dossier portant le mĂȘme nom dans le rĂ©pertoire wp-content/plugins.

Dans ce tutoriel, je vais appeler ce plugin “Hello World”, alors allez-y et :

-> crĂ©ez le dossier “hello-world” dans le rĂ©pertoire wp-content/plugins de votre installation WordPress (en utilisant FTP ou le gestionnaire de fichiers).

-> crĂ©ez un fichier nommĂ© hello-world.php dans ce dossier hello-world que vous venez de crĂ©er.

2- Écrire des en-tĂȘtes de plugin pour ce plugin hello world

Les en-tĂȘtes sont des informations sur le module (plugin). sans les en-tĂȘtes, WordPress ne peut PAS dĂ©couvrir votre plugin .

Le nom du plugin est requis dans les en-tĂȘtes du plugin et les autres en-tĂȘtes sont facultatifs.

Cela signifie que vous pouvez uniquement dĂ©finir un nom pour un plugin et l’activer , mais vous pouvez Ă©galement Ă©crire des informations complĂštes sur ce plugin Ă  afficher sur la page des plugins dans le panneau d’administration de WordPress.

Vous pouvez Ă©crire vos propres informations en tant qu’auteur du plugin dans les en-tĂȘtes pour que les autres puissent voir s’ils ont installĂ© votre plugin.

Ceci est le code complet d’un en-tĂȘte appropriĂ© pour le plugin WordPress hello world. vous pouvez modifier ces informations en fonction des vĂŽtres.

-> ces codes iront en haut de votre fichier hello-world.php :

<?php
/**
 * Hello World
 *
 * @package     HelloWorld
 * @author      Mehdi Nazari
 * @copyright   2019 Mehdi Nazari
 * @license     GPL-2.0-or-later
 *
 * @wordpress-plugin
 * Plugin Name: Hello World
 * Plugin URI:  https://mehdinazari.com/how-to-create-hello-world-plugin-for-wordpress
 * Description: This plugin prints "Hello World" inside an admin page.
 * Version:     1.0.0
 * Author:      Mehdi Nazari
 * Author URI:  https://mehdinazari.com
 * Text Domain: hello-world
 * License:     GPL v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
 */

PHPCopie

Maintenant vous avez un dossier dans le rĂ©pertoire des plugins, nommĂ© « hello-world Â», Ă  l’intĂ©rieur duquel vous avez un fichier, nommĂ© « hello-world.php Â», et Ă  l’intĂ©rieur de ce fichier, vous avez le code ci-dessus.

À ce stade, vous pouvez activer votre plugin et WordPress sera d’accord avec lui.

AprĂšs vous ĂȘtre connectĂ© au tableau de bord d’administration (wp-admin), vous pouvez accĂ©der Ă  la page des plugins en cliquant sur son Ă©lĂ©ment de menu.

Ou remplacez simplement le nom de votre site Web dans cette URL :
http://sitename.com/wp-admin/plugins.php

Trouvez le plugin hello world dans la liste des plugins. vous pouvez activer le plugin en cliquant sur le bouton « Activer » sous le nom du plugin :

Plugin WordPress hello world dans la liste des plugins
Plugin WordPress hello world dans la liste des plugins

Pour afficher le texte “Hello World”, vous devez crĂ©er une page d’administration et afficher ce texte Ă  l’intĂ©rieur.

3- CrĂ©er une page d’administration pour le plugin hello world

Si vous crĂ©ez une page de menu pour le plugin hello-world, son Ă©lĂ©ment de menu sera automatiquement crĂ©Ă© et vous pourrez y accĂ©der Ă  partir de la liste de menu WordPress.

-> pour crĂ©er une page d’administration et un Ă©lĂ©ment de menu pour le plugin hello-world, copiez ce code et collez-le en bas du fichier « hello-world.php » :


function display_hello_world_page() {
  echo 'Hello World!';
}
function hello_world_admin_menu() {
  add_menu_page(
        'Hello World',// page title
        'Hello World',// menu title
        'manage_options',// capability
        'hello-world',// menu slug
        'display_hello_world_page' // callback function
    );
}
add_action('admin_menu', 'hello_world_admin_menu');

PHPCopie

Vous pouvez maintenant voir l’Ă©lĂ©ment de menu Hello World dans la liste du menu d’administration si vous actualisez simplement la page d’administration (aucune rĂ©activation n’est requise). comme ça:

ÉlĂ©ment de menu Hello World dans le panneau d'administration
ÉlĂ©ment de menu Hello World dans le panneau d’administration

AprĂšs avoir cliquĂ© sur l’Ă©lĂ©ment de menu “Hello World”, vous accĂ©dez Ă  sa page d’administration, oĂč vous pouvez voir “Hello World!” texte que nous avons imprimĂ© Ă  l’aide de la commande echo de PHP. comme ça:

Page d'administration Hello World dans le panneau d'administration
Page d’administration Hello World dans le panneau d’administration

les codes ci-dessus expliquent:

Tout d’abord, nous avons dĂ©clarĂ© une fonction nommĂ©e display_hello_world_page()pour afficher “Hello World!” texte Ă  l’aide de la commande echo de PHP.

Pour que cette fonction fonctionne comme une page, nous devons enregistrer cette fonction en tant que fonction de rappel de la fonction de WordPress add_menu_page(). qui est une fonction de base de WordPress utilisĂ©e pour crĂ©er des pages d’administration et des liens de menu.

Pour exĂ©cuter la fonction add_menu_page(), nous devons la dĂ©clencher Ă  l’aide d’une action.

Pour crĂ©er une action dans WordPress, nous utilisons add_action()function.

add_action()function prendra deux paramĂštres, le premier paramĂštre dĂ©clare quand l’action se dĂ©clenche, tandis que le second paramĂštre dĂ©clare quelle fonction doit ĂȘtre dĂ©clenchĂ©e Ă  ce moment-lĂ .

add_action('admin_menu', 'hello_world_admin_menu')dit Ă  WordPress que nous voulons exĂ©cuter hello_world_admin_menu()lorsque l’ admin_menuaction est en cours d’exĂ©cution par WordPress.

Avec cette add_action, notre fonction add_menu_page s’exĂ©cutera lorsque WordPress essaiera de crĂ©er des menus d’administration.

add_menu_page()est une fonction de base de WordPress qui prend 7 paramĂštres et crĂ©e une page de menu d’administration pour vous (facile, non ?).

Ces 7 paramĂštres sont « titre de la page », « titre du menu », « capacitĂ© », « slug de menu », « fonction de rappel », « url de l’icĂŽne » et « position dans le menu ».

Titre de la page : il sera affichĂ© sur les onglets du navigateur.

Titre du menu : il sera affichĂ© comme nom de menu dans le panneau wordpress.

CapacitĂ© : celle-ci dĂ©termine quel type d’utilisateur administrateur peut accĂ©der Ă  cette page ?

Menu slug : avec ce paramĂštre, vous pouvez dĂ©finir une adresse pour votre page d’administration.

Fonction de rappel : quelle fonction voulez-vous exĂ©cuter lorsque cette page est appelĂ©e ? nous imprimerons “Hello World!” dans cette fonction.

URL de l’icĂŽne : si vous souhaitez utiliser une autre icĂŽne autre que l’engrenage, vous pouvez Ă©crire son URL ici.

Position dans le menu : ceci est facultatif, si vous souhaitez positionner cet Ă©lĂ©ment Ă  un emplacement prĂ©cis dans le menu WordPress, vous pouvez mettre le numĂ©ro ici.

Nous n’avons pas utilisĂ© les deux derniers paramĂštres dans notre plugin hello-world, et l’avons laissĂ© par dĂ©faut.

Vous pouvez en savoir plus sur la fonction add_menu_page dans les documents officiels de WordPress.

10 choses Ă  garder Ă  l’esprit lors de la crĂ©ation de plugins WordPress en tant que dĂ©butant

Si vous crĂ©ez un plugin WordPress pour la premiĂšre fois, vous feriez mieux de garder certaines choses Ă  l’esprit. voici la liste :

1- Vous pouvez inclure des fichiers PHP dans votre fichier de plugin principal

Comme tout autre script PHP, vous pouvez inclure d’autres fichiers PHP dans le fichier principal. afin que vous puissiez inclure d’autres fichiers PHP dans le fichier principal de votre plugin (dans notre cas, le fichier hello-world.php)

Vous pouvez catĂ©goriser vos fonctions et les mettre dans diffĂ©rents fichiers pour garder vos codes propres et simples. vous devez les inclure dans votre fichier principal.

Par exemple, vous pouvez diviser notre fichier hello-world.php en deux fichiers comme ceci :

-> crĂ©ez un fichier nommĂ© functions.php Ă  cĂŽtĂ© de votre fichier hello-world.php.

Ajoutez ces codes Ă  ce nouveau fichier functions.php :

<?php
add_action('admin_menu', 'hello_world_admin_menu');
function hello_world_admin_menu() {
  add_menu_page(
        'Hello World',// page title
        'Hello World',// menu title
        'manage_options',// capability
        'hello-world',// menu slug
        'display_hello_world_page' // callback function
    );
}

function display_hello_world_page() {
  echo 'Hello World!';
}

PHPCopie

-> changez le contenu de votre fichier hello-world.php en ceci :

<?php
/**
 * Hello World
 *
 * @package     HelloWorld
 * @author      Mehdi Nazari
 * @copyright   2019 Mehdi Nazari
 * @license     GPL-2.0-or-later
 *
 * @wordpress-plugin
 * Plugin Name: Hello World
 * Plugin URI:  https://mehdinazari.com/how-to-create-hello-world-plugin-for-wordpress
 * Description: This plugin prints "Hello World" inside an admin page.
 * Version:     1.0.0
 * Author:      Mehdi Nazari
 * Author URI:  https://mehdinazari.com
 * Text Domain: hello-world
 * License:     GPL v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
 */
include_once("functions.php");
//or use include(),require(),require_once()

PHPCopie

Tout doit rester le mĂȘme aprĂšs ce changement. nous avons juste rendu nos codes un peu plus clairs.

2- Vous pouvez utiliser l’approche MVC pour crĂ©er des plugins WordPress

Oui, vous pouvez crĂ©er des plugins WordPress en utilisant l’approche MVC.

Vous avez deux façons de procĂ©der. tout d’ abord, vous pouvez crĂ©er votre propre structure de dossiers et vos propres classes .

Ou vous pouvez utiliser le plugin WP-MVC qui fournit la structure de dossiers MVC et les classes par dĂ©faut pour vous, et vous pouvez les Ă©tendre pour obtenir ce que vous voulez.

WP-MVC s’occupera des fichiers inclus si vous l’utilisez correctement, et il a aussi des fonctions trĂšs utiles.

Un jour, je crĂ©erai un guide complet pour le dĂ©veloppement de plugins Ă  l’aide de WP-MVC.

3- Les actions et les filtres sont le principal moyen de se connecter Ă  WordPress

Les crochets d’action et de filtre sont la partie la plus importante de l’API WordPress . si vous voulez ĂȘtre un dĂ©veloppeur WordPress, vous feriez mieux de savoir comment ils fonctionnent.

Un crochet d’action sera dĂ©clenchĂ© lorsqu’une action se produit . comme dĂ©clencher une fonction lorsque l’utilisateur vient de se connecter (ou a Ă©chouĂ©).

Les crochets de filtres seront utilisĂ©s pour contrĂŽler le flux des fonctions principales de WordPress ou modifier la sortie de ses fonctions.

J’ai crĂ©Ă© un tutoriel complet sur l’action WordPress et les hooks de filtre. lisez-le ici :

Tutoriel WordPress Action et Filter Hooks (+10 exemples)

4- Toutes les fonctions n’ont pas besoin d’ĂȘtre dans un plugin

Vous pouvez Ă©galement Ă©crire vos fonctions dans votre fichier template functions.php .

Si vous n’avez pas beaucoup de code et de fonctionnalitĂ©s dans votre plugin, vous pouvez Ă©crire ces codes dans le fichier function.php de notre modĂšle. ces fonctions agiront de la mĂȘme maniĂšre que dans un plugin.

Vous pouvez Ă©galement utiliser des crochets d’action et de filtre dans le fichier functions.php de votre modĂšle.

Le fichier functions.php se trouve dans le rĂ©pertoire wp-content/themes/yourtheme . par votre thĂšme, je veux dire votre dossier de thĂšme actuellement actif.

5- Le dĂ©veloppement avancĂ© de plugins WordPress peut ĂȘtre beaucoup plus compliquĂ©

Si vous souhaitez créer un plugin pouvant modifier certaines fonctionnalités de WordPress, cela ne prendra pas longtemps et ce ne sera pas compliqué dans la plupart des cas.

Mais tous les plugins WordPress ne sont pas faciles Ă  crĂ©er, parfois il faudra des mois pour crĂ©er un plugin WordPress qui fonctionne rĂ©ellement et qui n’a pas de bogues ni de problĂšmes.

Personnellement, j’ai travaillĂ© parfois quelques mois sur un seul plugin.

Cela dĂ©pend de la quantitĂ© de fonctions WordPress qui peuvent vous aider Ă  atteindre ce que vous voulez. parfois vous devez Ă©crire des milliers de lignes de code pour rĂ©pondre Ă  vos besoins.

6- Vous devez toujours ĂȘtre soucieux de la sĂ©curitĂ© de votre plugin WordPress

En matiÚre de sécurité, vous devriez toujours réfléchir à deux fois.

La principale diffĂ©rence entre un expert et un dĂ©veloppeur dĂ©butant est que l’expert codera toujours en toute sĂ©curitĂ© et vĂ©rifiera toujours la sĂ©curitĂ© de ses scripts.

quelques-unes des meilleures pratiques concernant la sécurité du développement de plugins wordpress pour les débutants :

  1. nettoyer et valider les valeurs saisies par l’utilisateur
  2. utiliser “wp nonce” pour empĂȘcher les attaques CSRF sur les formulaires
  3. vérifier les extensions de fichiers dans les formulaires de téléchargement
  4. enregistrer les actions importantes effectuées par les utilisateurs
  5. utiliser des bibliothÚques PHP externes sécurisées
  6. vĂ©rifiez les privilĂšges d’administrateur sur vos fonctions personnalisĂ©es (utilisez la fonction user_can())

7- Gardez vos fichiers et codes de plugin WordPress agréables et simples

AprĂšs quelques jours de dĂ©veloppement d’un plugin WordPress, les codes peuvent devenir compliquĂ©s et difficiles Ă  comprendre, surtout si votre code ne se trouve que dans un seul fichier.

La meilleure pratique pour coder propre consiste à séparer différentes fonctions en fonction de leur utilisation.

Par exemple, placez toutes vos fonctions mathĂ©matiques dans un fichier nommĂ© math_helper.phpet incluez-le lĂ  oĂč vous voulez l’utiliser.

L’utilisation de l’approche MVC est le meilleur moyen de garder les codes propres et de garder les fonctions sĂ©parĂ©es. c’est pourquoi WP MVC est gĂ©nial .

Par dĂ©faut, WordPress n’est pas MVC. mais vous pouvez coder en MVC si vous le souhaitez. il vous suffit de crĂ©er des dossiers et des fichiers pour cela.

Le plugin WP MVC s’occupait dĂ©jĂ  de la structure des dossiers et des inclusions de fichiers. vous pouvez l’essayer pour votre prochain dĂ©veloppement de plugin WordPress.

8- Dans le développement de plugins WordPress, vous pouvez facilement enregistrer des données dans une base de données, mais soyez prudent

WordPress fournit un objet global nommĂ© $wpdb, vous pouvez toujours appeler cet objet et l’utiliser en Ă©crivant global $wpdb;du code dans votre fonction. quelque chose comme ça:

<?php
function insertDataToDatabase(){
  global $wpdb;
  $table_name = $wpdb->prefix . "custom_table";
  $wpdb->insert($table_name, array('name' => "Test", 'email' => "test@test.com") ); 
}

PHPCopie

$wpdbL’objet contient toutes les fonctions de base de donnĂ©es dont vous avez besoin.

Dans le code ci-dessus, nous avons utilisĂ© insert()la fonction de l’ $wpdbobjet pour insĂ©rer nos donnĂ©es dans la table custom_table de la base de donnĂ©es.

Lorsque vous travaillez avec une base de donnĂ©es, vous devez ĂȘtre prudent, surtout si vous enregistrez des entrĂ©es utilisateur.

Souvenez-vous de ceci : ne faites jamais confiance Ă  l’entrĂ©e de l’utilisateur .

Si vous insĂ©rez des donnĂ©es avec une requĂȘte directe dans la base de donnĂ©es, vous devez toujours nettoyer l’entrĂ©e de l’utilisateur et Ă©galement valider son type de donnĂ©es.

Vous pouvez utiliser sanitize_text_field()la fonction de WordPress pour nettoyer les champs de texte, WordPress fournit Ă©galement une fonction de nettoyage pour tous les types de donnĂ©es. par exemple sanitize_email(), nettoie l’entrĂ©e de courrier Ă©lectronique de l’utilisateur.

9- Les fonctions toxiques et les boucles infinitives Ă  l’intĂ©rieur d’un plugin WordPress peuvent casser votre site Web

Comme tout autre script PHP, les fonctions toxiques peuvent casser tout le systĂšme.

Comme tout autre script PHP, les fonctions toxiques peuvent casser tout le systĂšme.

En utilisant le terme «fonctions toxiques», je veux dire des fonctions qui utilisent beaucoup de ressources et peuvent entraĂźner une pĂ©nurie de recours pour votre serveur d’hĂ©bergement.

Les boucles infinies Ă  l’intĂ©rieur d’un plugin ou d’un thĂšme WordPress peuvent facilement casser le systĂšme et causer beaucoup de problĂšmes au serveur hĂŽte.

Les boucles infinies sont des boucles de programmation qui ne se termineront jamais. En raison du manque de conditions d’interruption ou de mauvaises conditions, ces boucles s’exĂ©cuteront jusqu’Ă  ce que votre serveur soit Ă  court de ressources telles que la puissance du processeur ou la RAM.

Vous feriez mieux d’apprendre Ă  gĂ©rer les fonctions frĂ©quemment utilisĂ©es comme les messages de requĂȘte en utilisant get_posts de maniĂšre efficace .

10- Vous pouvez utiliser CSS, jQuery et JavaScript pour créer de superbes mises en page pour vos plugins WordPress

Il existe 3 façons d’ajouter des codes CSS et JS personnalisĂ©s Ă  la page d’administration de votre plugin.

  1. utiliser des codes CSS et JS en ligne
  2. inclure CSS et JS en utilisant <style>et <script>balises dans la page
  3. inclure des CSS et JS externes Ă  l’aide de WordPress wp_enqueue_style()et de admin_enqueue_scripts()fonctions.

AprÚs avoir inclus vos codes CSS et JS personnalisés, vous pouvez les utiliser pour styliser la page de votre plugin WordPress.

Vous pouvez inclure des frameworks CSS et JS comme Bootstrap et créer la base de votre mise en page sur eux.

JQuery est activĂ© par dĂ©faut dans la page d’administration de WordPress. vous pouvez Ă©crire des codes jQuery et les exĂ©cuter sans inclure la bibliothĂšque jQuery. (il est dĂ©jĂ  inclus)

Posted in Uncategorized

remove_role

Exemple de fonction avec remove_role

Par exemple, nous allons supprimer le rĂŽle « Contributeur Â» de WordPress :

$role = "contributor";
remove_role($role);

Ci-dessus fonctionnera dans un plugin WordPress personnalisé ou dans le functions.phpfichier de votre thÚme actuel.

Posted in Uncategorized