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?


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í


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


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.


77
Pirateo hackeado. ¡Utiliza la API!
Richard Sweeney el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.