add_menu_page () con un nombre diferente para el primer elemento del submenú

85

La add_menu_pagedocumentación dice que pase el título del menú como segundo parámetro:

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

Cuando se agregan más páginas a través de add_submenu_page, la página principal se convierte en la primera entrada en el submenú:

ingrese la descripción de la imagen aquí


Sin embargo, quiero que el primer elemento de la lista tenga un nombre diferente (pero todavía apunte a la misma página), de la misma forma en que Wordpress lo hace:

ingrese la descripción de la imagen aquí


¿Cómo podría lograr eso en mi complemento?

MegaHit
fuente
Encontré un blog muy útil para el mismo pupose tekina.info/add-menus-submenus-wordpress-admin-panel
Aniket Singh

Respuestas:

113

Puede hacer que el 'slug' para la página del submenú sea igual al de la página de nivel superior, y apuntarán al mismo lugar:

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

P.ej

ingrese la descripción de la imagen aquí

Michael Lewis
fuente
Esto daría como resultado entradas duplicadas, ya que Wordpress crea automáticamente una página de submenú para la página principal.
MegaHit
44
Recuerdo que hojeé el código central la semana pasada y me encontré con una nota que decía algo como: "Agregar elemento de submenú predeterminado SI EL USUARIO NO YA ESTÁ". Comprueba si hay un elemento de submenú que apunta al elemento de nivel superior. Si lo hay, no agrega el valor predeterminado.
Michael Lewis
Cuando creo un menú personalizado, quiero mostrar algunas tablas y datos, ya que otras pestañas muestran un enlace de tutorial o se agradecerá alguna ayuda de función
Aitazaz Khan
Exactamente lo que estaba buscando. Gracias: 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 el nombre del primer submenú es diferente, cree la misma babosa de padre y primer hijo y llame a la misma función

Umesh Maliya
fuente
2
¿Cómo es diferente de la respuesta aceptada? Y a qué acción se debe enganchar esto.
bravokeyl
-4

Simplemente agregue esto:

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

Para fines de depuración, puede hacer una print_r($menu)comprobación del menú completo de WP.

Laurent
fuente
77
Pirateo hackeado. ¡Utiliza la API!
Richard Sweeney el