Catégories
PHP Tutoriel Wordpress

Tutoriel – Créer un plugin WordPress

Salut :),

Dans ce tutoriel, nous allons voir les bases pour créer votre propre plugin WordPress. Nous le développerons de manière Orienté Objet pour que ce soit plus structuré.

Création du dossier

La première étape est d’ajouter un dossier à la racine de plugins dans votre site WordPress. Tous les plugins doivent se trouver dans ce dossier !
Dans mon cas, je l’ai nommé tutorielplugin.

Création du fichier de plugin

Une fois dans le dossier que nous venons de créer, nous allons y ajouter un fichier PHP, c’est le point d’entrée de notre plugin WordPress.

Pour que notre CMS détecte que le fichier soit bien un plugin, il faut ajouter au moins les lignes suivantes au tout début du fichier :

<?php
/*
 Plugin Name: Nom de votre plugin
*/

Si vous souhaitez faire une description complète du plugin, voici les lignes à ajouter avec vos informations :

<?php
/*
  Plugin Name: Nom de votre plugin
  Plugin URI: http://bfrancois.com
  Description: Exemple de plugin WordPress
  Version: 0.1
  Author: Benjamin François
  Author URI: http://blog.bfrancois.com
  License: GPL2
*/

Faites attention aux espaces et aux retours à la lignes. Si tous s’est bien passé, vous devriez avoir quelque chose comme ça dans la partie admin :

Tutoriel plugin partie admin

Structure de base du plugin

La structure de votre plugin devrait avoir cette forme, c’est une classe classique en PHP. La condition vérifie si la classe a été instancier pour ne pas le refaire.

/*
  Plugin Name: Tutoriel Plugin WordPress
  Plugin URI: http://bfrancois.com
  Description: Exemple de plugin WordPress
  Version: 0.1
  Author: Benjamin François
  Author URI: http://blog.bfrancois.com
  License: GPL2
 */
if (!class_exists('TutorielPlugin')) {

    class TutorielPlugin {

        public function __construct() {
            
        }

    }

}
$tutoriel_plugin = new TutorielPlugin();

Nous allons voir comment ajouter une action à notre plugin. Pour faire quelque chose de simple, nous allons ajouter à notre interface admin un lien vers une page de configuration de celui-ci.

Ajout d’une action

Pour ajouter une action à notre plugin, nous allons d’abord créer une fonction :

 /**
 * Un exemple d'action
 */
 public function simple_action(){
 
 }

Une fois la fonction créée, nous allons l’ajouter au constructeur pour déclencher l’action dès le début.

/**
 * Constructeur
 */
 public function __construct() {
   add_action('admin_menu', array($this,'simple_action'));
 }

Ajout d’un lien dans le menu administrateur

Pour ajouter un lien dans l’interface admin, c’est assez simple. Dans la fonction simple_action, il faut ajouter le code suivant :

/**
 * Un exemple d'action
 */
public function simple_action() {
   add_menu_page('Plugin Tutoriel', 'Plugin Tutoriel', 'manage_options', 'plugin-tutoriel', array($this, 'plugin_tutoriel'), 'dashicons-admin-comments', 4);
}

Les paramètres de add_menu_page correspondent au nom dans le menu, le titre de la page, les droits nécessaires, le nom affiché dans l’url (ex : ?page=plugin-tutoriel), la méthode à appeler, l’icône à afficher dans le menu et la position dans le menu.

Je vous invite à regarder cette page qui décrit bien son fonctionnement :).

Maintenant nous allons créer notre méthode qui va créer la page du plugin.

Page de plugin

Pour afficher la page du plugin nous allons créer la méthode suivante :

/**
 * Affichage de la page du plugin
 */
 public function plugin_tutoriel() {
   if (!current_user_can('manage_options')) {
        wp_die(__('Vous n\'avez pas les droits pour accéder à cette page.'));
    }
   include(sprintf("%s/plugin_tutoriel.php", dirname(__FILE__)));
}

La condition vérifie que l’utilisateur a les droits pour accéder à la page, sinon on lui affiche une erreur.

Ensuite on ajoute la page de configuration. Dans mon cas j’ai créé une page plugin_tutoriel.php à la racine de mon dossier qui contient de l’HTML

Activation du plugin

Retournez dans la gestion des extensions et activez votre création ! Si tout se passe bien, Vous deviez voir ceci :

tutoriel résultat final

Conclusion

Pas trop long j’espère ? Vous pouvez télécharger le code source du tutoriel ici. Si vous avez des questions, ou si je ne suis pas assez clair, hésitez pas à me contacter.

Par Shinochi

Développeur Web Fullstack expert Drupal 8, et otaku par la même occasion.

Passionné par le japon, je partage quelques critiques sur les animes et mangas que j'ai regardé.
Je développe des jeux sur Unity3D à mes heures perdue.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.