Ajout d’un menu dans l’interface d’administration de WordPress

La seconde étape dans la création de mon plugin « MyBookCase » est l’ajout d’un menu dans l’interface d’administration de WordPress :

On souhaite un menu de type :menu MyBookCaseDans le fichier du plugin on ajoute une fonction register_MyBookCaseMenu. dans cette fonction on appelle la fonction wordpress add_menu_page (codex wordpress).

<?php

function register_MyBookCaseMenu() {
   add_menu_page('MyBookCase', 'MyBookCase', 'manage_options', 'lcrc_mybookcase', '',   '', 30);
}

?>

avec en paramètre :

  1. le titre de la page : ‘MyBookCase’
  2. le titre du menu : ‘MyBookCase’
  3. le niveau d’autorisation utilisateur pour voir le menu : ‘manage_options’
  4. le nom référence du menu : ‘lcrc_mybookcase’
  5. la fonction d’affiche de la page :’ ‘
  6. l’icône du menu : ‘ ‘
  7. la position dans l’interface d’administration : 30 pour être entre les commentaires (25) et la barre de séparation (59)

Maintenant nous allons ajouter les sous-menu en appelant la fonction wordpress add_submenu_page (codex wordpress).

<?php
function register_MyBookCaseMenu() {
   add_menu_page('MyBookCase', 'MyBookCase', 'manage_options', 'lcrc_mybookcase', '',   '', 30);
   add_submenu_page('lcrc_mybookcase', 'Tous les livres',
        'Tous les livres', 'manage_options', 'lcrc_mybookcase','');
   add_submenu_page('lcrc_mybookcase', 'Ajouter un livre', 
        'Ajouter un livre', 'manage_options', 'MyBookCase/lcrc_mybookcase.php','');
}
?>

avec en paramètre :

  1. le nom référence du menu parent : ‘lcrc_mybookcase’
  2. le titre de la page : ‘Tous les livres’ ou ‘Ajouter un livre’
  3. le titre du sous-menu : ‘Tous les livres’ ou ‘Ajouter un livre’
  4. le niveau d’autorisation utilisateur pour voir le sous-menu : ‘manage_options’
  5. le nom référence du menu : ‘lcrc_mybookcase’ ou ‘MyBookCase/lcrc_mybookcase.php’
  6. la fonction d’affiche de la page :’ ‘

Il ne nous reste plus qu’à déclencher notre fonction register_MyBookCaseMenu avec la fonction wordpress add_action (codex wordpress).

<?php

add_action('admin_menu', 'register_MyBookCaseMenu');

?>

avec en paramètre :

  1. le nom de la fonction à laquelle on va attacher notre nouvelle fonction : ‘admin_menu’
  2. le nom de la fonction à attacher : ‘register_MyBookCaseMenu’

Ce qui donne dans son ensemble :

<?php
/*
Plugin Name: MyBookCase
Plugin URI: http://dev.lucrece.net/mybookcase/
Description: Gestion de livres : lus, en cours, à lire.
Version: 0.1
Author: Lucrèce
Author URI: http://dev.lucrece.net/
*/

add_action('admin_menu', 'register_MyBookCaseMenu');

function register_MyBookCaseMenu() {
   add_menu_page('MyBookCase', 'MyBookCase', 'manage_options', 'lcrc_mybookcase', '',   '', 30);
   add_submenu_page('lcrc_mybookcase', 'Tous les livres',
        'Tous les livres', 'manage_options', 'lcrc_mybookcase','');
   add_submenu_page('lcrc_mybookcase', 'Ajouter un livre', 
        'Ajouter un livre', 'manage_options', 'MyBookCase/lcrc_mybookcase.php','');
}
?>

5 Replies to “Ajout d’un menu dans l’interface d’administration de WordPress”

  1. Je suis un débutant, et je cherche d’ajouter un sous menu à un menu déjà existant dans l’administration de wordpress

  2. Bonjour, Pour ajouter un sous-menu à un menu existant, il faut utiliser le nom référence (slug name) du menu : par exemple pour ajouter un sous menu au menu Posts : il faut utiliser ‘edit.php’ en premier paramètre de add_submenu_page() ou utiliser add_posts_page().
    Pour plus de détails voir le codex WordPress : http://codex.wordpress.org/Function_Reference/add_submenu_page

  3. Bonjour
    Merci pour les tutoriels.
    Je suis débutant avec wordpress. Maintenant, je veux créer un plugin qui permet de lister tous les personnels presents dans ma base des données. Comment fait on pour cela?
    Cordialement.

  4. Bonjour !
    Pour obtenir les utilisateurs inscrits, il y a la fonction WordPress « get_users » (http://codex.wordpress.org/Function_Reference/get_users)
    voici un exemple pour une liste d’administateur (role=Administrator)

    <ul>
    <?php
    $admins = get_users('role=Administrator');
    foreach ($admins as $admin)
    {
    echo '<li>' . $admin->display_name. '</li>';
    }
    ?>
    </u>

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*