add_menu_page () mit unterschiedlichem Namen für den ersten Untermenüpunkt

83

In der add_menu_pageDokumentation wird angegeben, dass der Menütitel als zweiter Parameter übergeben werden soll:

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

Wenn Sie später über weitere Seiten hinzufügen add_submenu_page, wird die Hauptseite zum ersten Eintrag im Untermenü:

Bildbeschreibung hier eingeben


Ich möchte jedoch, dass das erste Element in der Liste einen anderen Namen hat (aber immer noch auf dieselbe Seite zeigt), so wie es Wordpress selbst tut:

Bildbeschreibung hier eingeben


Wie könnte ich das in meinem Plugin erreichen?

MegaHit
quelle
Ich fand einen sehr nützlichen Blog für die gleiche Person: tekina.info/add-menus-submenus-wordpress-admin-panel
Aniket Singh

Antworten:

112

Sie können festlegen, dass der Slug für die Untermenüseite dem Slug für die Seite der obersten Ebene entspricht, und sie zeigen auf dieselbe Stelle:

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' );
}

Z.B

Bildbeschreibung hier eingeben

Michael Lewis
quelle
Dies würde zu doppelten Einträgen führen, da Wordpress automatisch eine Untermenüseite für die Hauptseite erstellt.
MegaHit
4
Ich erinnere mich, wie ich letzte Woche den Kerncode durchgesehen habe und auf eine Notiz gestoßen bin, in der etwa stand: "Standard-Untermenüeintrag hinzufügen, WENN BENUTZER NICHT BEREITS HAT". Es wird geprüft, ob ein Untermenüelement auf das Element der obersten Ebene verweist. Ist dies der Fall, wird die Standardeinstellung nicht hinzugefügt.
Michael Lewis
Ich möchte, wenn ich ein benutzerdefiniertes Menü erstelle, ich möchte einige Tabellen und Daten anzeigen, da auf anderen Registerkarten ein Tutorial-Link angezeigt wird oder eine Funktionshilfe
gewünscht
Genau das, wonach ich gesucht habe. Danke: 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
    ); 

Wenn der Name des ersten Untermenüs unterschiedlich ist, erstellen Sie denselben Slug von Eltern und erstem Kind und rufen Sie dieselbe Funktion auf

Umesh Maliya
quelle
2
Wie unterscheidet es sich von der akzeptierten Antwort? Und an welche Aktion soll diese angebunden werden.
Bravokeyl
-4

Fügen Sie einfach Folgendes hinzu:

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

Zum Debuggen können Sie a print_r($menu)ausführen, um das gesamte WP-Menü zu überprüfen.

Laurent
quelle
7
Hackedy Hack. Nutzen Sie die API!
Richard Sweeney