add_menu_page () avec un nom différent pour le premier élément de sous-menu


85

La add_menu_pagedocumentation dit de passer le titre du menu comme deuxième paramètre:

add_menu_page('Page Title', 'Menu Title', ...);

Lorsque vous ajoutez plus de pages ultérieurement via add_submenu_page, la page principale devient la première entrée du sous-menu:

entrez la description de l'image ici


Cependant, je veux que le premier élément de la liste ait un nom différent (mais pointe toujours sur la même page), comme le fait Wordpress lui-même:

entrez la description de l'image ici


Comment pourrais-je accomplir cela dans mon plugin?


J'ai trouvé un blog très utile pour le même but. Tekina.info/add-menus-submenus-wordpress-admin-panel
Singh

Réponses:


113

Vous pouvez faire en sorte que le "slug" de la page de sous-menu soit égal à celui de la page de niveau supérieur, et ils indiqueront le même endroit:

add_action('admin_menu', 'my_menu_pages');
function my_menu_pages(){
    add_menu_page('My Page Title', 'My Menu Title', 'manage_options', 'my-menu', 'my_menu_output' );
    add_submenu_page('my-menu', 'Submenu Page Title', 'Whatever You Want', 'manage_options', 'my-menu' );
    add_submenu_page('my-menu', 'Submenu Page Title2', 'Whatever You Want2', 'manage_options', 'my-menu2' );
}

Par exemple

entrez la description de l'image ici


Cela entraînerait des entrées en double, car Wordpress crée automatiquement une page de sous-menu pour la page principale.
MegaHit

4
Je me souviens avoir parcouru le code principal la semaine dernière pour trouver une note disant: "Ajouter un élément de sous-menu par défaut SI L'UTILISATEUR N'A JAMAIS DÉJÀ". Il vérifie s'il existe un élément de sous-menu pointant vers l'élément de niveau supérieur. Si c'est le cas, cela n'ajoute pas la valeur par défaut.
Michael Lewis

Je veux quand je crée le menu personnalisé je veux afficher des tables et des données que d' autres onglets sont afficher un lien tutoriel ou une aide de la fonction sera appréciée
Aitazaz Khan

Exactement ce que je cherchais. Merci: P
Rob DA

-3
add_submenu_page(
        'tut_theme_settings',       // parent slug
        'Front Page Elements 2',    // page title
        'Front Page 2',             // menu title
        'manage_options',           // capability
        'tut_theme_settings2',      // slug
        'theme_front_page_settings' // callback
    ); 

si le nom différent du premier sous-menu crée la même slug de parent et premier enfant et appelle la même fonction


2
En quoi est-ce différent de la réponse acceptée? Et à quelle action cela devrait être accroché.
bravokeyl

-4

Ajoutez simplement ceci:

$submenu['my-menu'][0][0] = 'My New Menu Title';

À des fins de débogage, vous pouvez print_r($menu)vérifier l’ensemble du menu WP.


7
Bidouille Hackedy. Utilisez l'API!
Richard Sweeney
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.