Créer un plugin WordPress avec POO

8 Commentaires

Nous allons voir ce jour la création d’un plugin sous WordPress, mais on va utiliser le principe de la  programmation orientée objet afin d’avoir une meilleure maintenance et gestion de code.

Tout d’abord, je vous donne l’architecture du plugin. Dans le dossier plugins vous pouvez créer un nom de votre plugins et à l’intérieur, vous aurez quelque chose comme suit :

archi
Comme vous pouvez le comprendre vite fait, le dossier classes va contenir notre classe, le dossier css pour les feuilles de style. le fichier index.php, celui qui va contenir l’instanciation de notre classe

<?phphttp://localhost/wordpress-3.5-fr_FR/wordpress/wp-admin/users.php
/*
Plugin Name: Chapter 2 OO
Description: OOP
Version: 1.0
Author: Amine BETARI
*/

define('PLUGIN_PATH', dirname(__FILE__));
define('PLUGIN_PATH_CSS', plugins_url('css/stylesheet.css', __FILE__));
define('FAVICON', plugins_url('favicon.ico', __FILE__));
require 'PLUGIN_PATH.'/classes/ch2-oo.php';

$exempleOOP = new CH2_OO();

Ensuite dans le fichier ch2-oo.php, nous avons notre classe, qu’on trouve dans son constructeur ‘__construct’, les « hooks » de WordPress.

Bien sûr, il ne s’agit qu’un simple plugin. Mais pour toute personne qui souhaite se consacrer au développement de plugin sous WordPress, je ne peux que vous encouragez à coder d’une façon orientée objet vos plugins.

Le code source du fichier ch2-oo.php

<?php
class CH2_OO
{
function __construct()
{
 add_action( 'wp_enqueue_scripts', array($this, 'ch2pitQueueStylesheet') );
 add_action( 'admin_menu', array($this, 'SettingsMenuAdmin') );
}

function ch2pitQueueStylesheet()
{
 wp_enqueue_style( 'privateshortcodestyle', PLUGIN_PATH_CSS);
}

function SettingsMenuAdmin()
{
 add_menu_page('AxaMAROC', 'PageMenu', 'manage_options', 'slug-admin-menu', array($this, 'pageConfig'), FAVICON);
 add_submenu_page('slug-admin-menu', 'AxaOujda', 'SousPage', 'manage_options', 'slug-admin-submenu', array($this, 'pageConfigSubMenu') );
}

function pageConfigSubMenu()
{

 echo esc_html('<h2>PAGE_SUB_MENU_ADMIN</h2>');

}

function pageConfig()
{

echo esc_html('<h2>PAGE MENU ADMIN</h2>'); }}

Pour le fichier index.php

Dans cet exemple, on ajoute un menu et un sous_menu dans le back_office comme vous pouvez le voir:

back_office

Nous avons vu comment peut-on créer un plugin sous WordPress avec la technique orientée objet.