Créer une zone d’administration pour votre plugin WordPress

wordpress-logo1

Lorsque vous créez un plugin WordPress, il peut parfois être intéressant de laisser la possibilité aux utilisateurs de le configurer comme ils le souhaitent. Cela est valable à la fois pour les administrateurs de blog qui utilisent votre plugin et/ou leurs visiteurs. Dans cet article, nous allons voir comment utiliser les différents outils que WordPress met à notre disposition pour paramétrer un plugin.

Il existe deux méthodes qui vont permettre à vos utilisateurs de paramétrer leur plugin via la zone d’administration:

  • soit vous créez un onglet qui sera un sous-menu de Réglages (1er cadre dans l’image ci-dessous);
  • soit vous créez un groupe d’onglets spécifiques de votre plugin (2nd cadre dans l’image ci-dessous).

Le choix de l’une ou l’autre des méthode dépendra surtout du nombre de paramètres que vous souhaitez proposer à vos utilisateurs et de l’organisation que vous voulez leur donner.

illustration-adminEn plus de ce choix là, vous devrez décider de l’endroit où vous souhaitez stocker les variables utile à votre zone d’administration. Là encore, deux choix vos sont offerts:

  • soit vous stockez vos variables dans la table wp_options de WordPress;
  • soit vous créez votre propre table.

La sélection devra notamment se faire en fonction de la fréquence des données à sauvegarder qui justifieront ou non la création d’une table spécifique. Quoi qu’il en soit si vous choisissez la seconde méthode n’oubliez pas de déclarer dans votre plugin la création de la table:

global $wpdb;
$sql1 = "CREATE TABLE " . $table_name . " (
	id mediumint(9) NOT NULL AUTO_INCREMENT,
	name tinytext NOT NULL,
	url VARCHAR(100) NOT NULL,
	link VARCHAR(100) NOT NULL,
	UNIQUE KEY id (id)
);";
$wpdb->query($sql1);

Bien sûr, il faudra adapter la table à vos besoins. Pour accéder à vos variables, vous pouvez utiliser classique de WordPress. Si vous choisissez la première méthode, il suffit d’insérer dans la table wp_options les valeurs désirées pour votre variable:

global $wpdb;
$options = $wpdb->prefix . "options";
$wpdb->query( "INSERT INTO $options VALUES ('', '0', 'facethumb_widget', 'last', 'yes')" );

Avec cette méthode, l’accès à vos variables est simplifié puisqu’il vous suffit de taper:

$facethumb_widget = get_option('facethumb_widget');

Maintenant que vous savez enregistrer vos variables dans la base de données, nous allons créer la zone d’administration qui vous permettra de les modifier. Pour cela, nous allons créer une fonction qui crée les menu et sous-menu. Le hook se chargera d’appeler la fonction au bon moment de l’exécution de WordPress:

function facethumb_menu() {
        add_menu_page('FaceThumb Options', 'FaceThumb', 10, __FILE__, 'facethumb_option');
        add_submenu_page(__FILE__,'FaceThumb Options', 'Options', 10, __FILE__,'facethumb_option');
        add_submenu_page(__FILE__,'Manage Gallery', 'Manage Gallery', 10, 'manage-gallery','manage_gallery');
}
 
add_action('admin_menu', 'facethumb_menu');

Si vous créez un sous-menu de Réglages, vous n’aurez pas besoin de faire appel à la fonction add_menu_page(). La structure a utiliser sera équivalente à celle du deuxième add_submenu_page().

  • ‘FaceThumb Options’ est le nom qui s’affichera pour le groupe de page dans le menu de gauche du panneau d’administration.
  • Le chiffre 10 est le niveau minimum que les utilisateurs doivent avoir pour accéder à cette partie du panneau d’administration. Cela signifie qu’avec cette méthode vous pouvez créer des options accessibles aux utilisateurs simples (abonnés).
  • __FILE__ signifie que la fonction qui gère l’affichage de cette page est dans le même fichier que celui qui contient la fonction facethumb_menu(), et derrière on donne son nom: facethumb_option.
  • le dernier paramètre est le nom de la fonction qui gère l’affichage de la page et son exécution.

Vous remarquerez que le premier sous-menu fait appel à la même fonction. Cela est du à la structure de WordPress puisque lorsque vous cliquez sur un menu il affiche le premier sous-menu qu’il contient. Pour les sous-menu les paramètres sont les mêmes, pas forcément dans le même ordre. Le troisième paramètre désignant le nom qui s’affichera dans le menu de gauche (celui que vous voyez sur l’image de cette article). Notez bien que le premier sous-menu à une structure un peu différente des autres.

Pour le hook, le derier paramètre fait référenceà la fonction qui crée l’arborescence du menu. Ensuite, il ne vous restera plus qu’a créer les fonction qui gèrent les différentes pages, ici: facethumb_option() et manage_gallery().

Mots-clefs : , , ,

2 commentaires sur “Créer une zone d’administration pour votre plugin WordPress”

  1. Scion Lucifer dit :

    J’ai un souci lorsque j’ai ceci : function facethumb_menu() {
    add_menu_page(‘FaceThumb Options’, ‘FaceThumb’, 10, __FILE__, ‘facethumb_option’);
    add_submenu_page(__FILE__,’FaceThumb Options’, ‘Options’, 10, __FILE__,’facethumb_option’);
    add_submenu_page(__FILE__,’Manage Gallery’, ‘Manage Gallery’, 10, ‘manage-gallery’,'manage_gallery’);
    }

    add_action(‘admin_menu’, ‘facethumb_menu’);

    function facethumb_menu2() {
    add_menu_page(‘FaceThumb Options’, ‘FaceThumb’, 10, __FILE__, ‘facethumb_option’);
    add_submenu_page(__FILE__,’FaceThumb Options’, ‘Options’, 10, __FILE__,’facethumb_option’);
    add_submenu_page(__FILE__,’Manage Gallery’, ‘Manage Gallery’, 10, ‘manage-gallery’,'manage_gallery’);
    }

    add_action(‘admin_menu’, ‘facethumb_menu2′);

    Le sous menu apparaissent dans le premier Et le deuxiéme menu.

  2. Scion Lucifer dit :

    C’est bon je viens de trouver.

    / Merci

Laisser une réponse