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?

MegaHit
la source
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

Michael Lewis
la source
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

Umesh Maliya
la source
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.

Laurent
la source
7
Bidouille Hackedy. Utilisez l'API!
Richard Sweeney