add_menu_page () com nome diferente para o primeiro item do submenu

83

A add_menu_pagedocumentação diz para passar o título do menu como o segundo parâmetro:

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

Ao adicionar mais páginas posteriormente via add_submenu_page, a página principal se torna a primeira entrada no submenu:

insira a descrição da imagem aqui


No entanto, quero que o primeiro item da lista tenha um nome diferente (mas ainda aponte para a mesma página), da maneira que o Wordpress faz:

insira a descrição da imagem aqui


Como eu consegui isso no meu plugin?

MegaHit
fonte
Eu encontrei um blog muito útil para o mesmo pupose tekina.info/add-menus-submenus-wordpress-admin-panel
Aniket Singh

Respostas:

112

Você pode fazer com que o 'slug' da página do submenu seja igual ao da página de nível superior e eles apontam para o mesmo local:

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

Por exemplo

insira a descrição da imagem aqui

Michael Lewis
fonte
Isso resultaria em entradas duplicadas, pois o Wordpress cria automaticamente uma página de submenu para a página principal.
MegaHit 27/09/12
4
Lembro-me de percorrer o código principal na semana passada e deparar com uma anotação que dizia algo como: "Adicionar item de submenu padrão SE O USUÁRIO NÃO ESTIVER JÁ". Ele verifica se há um item de submenu apontando para o item de nível superior. Se houver, não adiciona o padrão.
Michael Lewis
Eu quero quando eu criar menu personalizado eu quero mostrar algumas tabelas e dados como outras guias são exibir um link tutorial ou alguma função ajuda será apreciada
Aitazaz Khan
Exatamente o que eu estava procurando. Thanx: 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
    ); 

se o nome diferente do primeiro submenu criar a mesma lesma de pai e primeiro filho e chamar a mesma função

Umesh Maliya
fonte
2
Qual é a diferença da resposta aceita? E a qual ação isso deve ser associado.
bravokeyl
-4

Basta adicionar isso:

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

Para fins de depuração, você pode fazer um print_r($menu)para verificar todo o menu WP.

Laurent
fonte
7
Hackedy hack. Use a API!
Richard Sweeney