add_submenu_page não está funcionando

3

Eu construí um plugin que cria um menu personalizado como este:

    add_menu_page( 'Wholesale Pricing', 'Wholesale', 'manage_options', 'woo-wholesale', 'woo_wholesale_page_call'); 

Agora estou tentando adicionar um item de subpágina abaixo dele. Eu li o códice e descobri:

add_submenu_page( 'woo-wholesale', 'Registrations', 'Registrations', 'manage_options', 'woo-wholesale-registrations', 'wwpr_page_call' ); 

Acredito que isso esteja incorreto, pois o item do submenu não está sendo exibido. Alguém pode lançar alguma luz sobre isso, por favor?

    
por danyo 15.06.2014 / 19:41

2 respostas

6

Certifique-se de que seu add_action hook esteja definido como admin_menu .

Veja um exemplo de código:

add_action('admin_menu', 'wpse149688');
function wpse149688(){
    add_menu_page( 'Wholesale Pricing', 'Wholesale', 'manage_options', 'woo-wholesale', 'woo_wholesale_page_call');
    add_submenu_page( 'woo-wholesale', 'Registrations', 'Registrations', 'manage_options', 'woo-wholesale-registrations', 'wwpr_page_call' ); 
}

Verifique também se o usuário que você efetuou login tem a capacidade de visualizar este menu. Como este menu é definido usando manage_options capacidade .

    
por Abhineet Verma 15.06.2014 / 19:50
2

Eu cometi o mesmo erro que o OP, pois não é intuitivo como fazer isso funcionar. Ao ler o códice em Menus de administração , descobri a resposta.

O problema (para mim, pelo menos) era editar o parâmetro $parent_slug na chamada para add_submenu_page(...) .

Então, no caso do OP, você mudaria:

add_submenu_page( 
    'woo-wholesale', 
    'Registrations', 
    'Registrations', 
    'manage_options', 
    'woo-wholesale-registrations', 
    'wwpr_page_call' 
);

para:

add_submenu_page( 
    'edit.php?post_type=woo-wholesale', 
    'Registrations', 
    'Registrations', 
    'manage_options', 
    'woo-wholesale-registrations', 
    'wwpr_page_call' 
);
    
por ban-geoengineering 28.04.2016 / 15:29