Remove principal duplicado - submenu em admin?

9

Quando uso add_menu_page & add_submenu_page para adicionar itens de menu,

add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );

Eu vou conseguir algo como

  • Formulários
    • Formulários
    • Candidaturas de emprego
    • Solicitações de cotação
    • Contatos

É possível criá-lo de tal forma que se torne

  • Formulários
    • Candidaturas de emprego
    • Solicitações de cotação
    • Contatos

Em outras palavras, os formulários serão vinculados a aplicativos de trabalho e eu não quero o item de submenu Extra Forms

    
por JM at Work 05.05.2011 / 08:07

3 respostas

6

Oi @JM no trabalho:

Sim, infelizmente, a página do submenu é adicionada para cada página do menu. Seria bom se houvesse uma opção, mas, infelizmente, atualmente não há .

Para remover a opção de página de submenu no WordPress 3.1 ou usar remove_submenu_page() com um código como este no arquivo functions.php do seu tema, ou em um arquivo .php de um plugin que você possa estar escrevendo:

add_action( 'admin_menu', 'yoursite_admin_menu' );
function yoursite_admin_menu() {
  add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
  add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
  remove_submenu_page('forms','forms');
}

Se você ainda estiver usando o WordPress 3.0, você precisa unset() de um elemento da variável global $submenu , assim:

add_action( 'admin_menu', 'yoursite_admin_menu' );
function yoursite_admin_menu() {
  add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
  add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
  unset($GLOBALS['submenu']['forms'][0]);
}
    
por MikeSchinkel 05.05.2011 / 10:15
1

Eu tive que add_submenu_page, então removê-lo (wp 4.0.1)

add_menu_page( 'Admin Tools', 'Admin Tools', 'manage_options','parent', '__return_null','', "70.23423" );
    // this 'hides' the extra.  actually, just makes the text nothing: ''  
    add_submenu_page( 'parent', '',     '', 'manage_options',   'parent',   '__return_null' );
    //ah, but this removes it completely (you need to add it, then remove it :/     
    remove_submenu_page('parent','parent');
    
por Doug Cassidy 09.12.2014 / 02:13
1

Eu sugeriria manter o item de menu extra, porque é como todos os outros menus do WP funcionam. (Eu sei que não é o que você pediu! ...) A maneira como os outros menus de nível superior funcionam é que eles têm rótulos diferentes para o título do menu grande e o duplicado abaixo dele (por exemplo, 'Usuários', 'Todos os Usuários'; 'Ferramentas', 'Ferramentas Disponíveis'). Eu acho que é bom ficar com o mesmo paradigma, então eu costumo renomear o primeiro item do submenu assim:

<?php
add_menu_page( 'Plugin Name', 'Plugin Name', 'read', 'plugin-slug', $callback );
add_submenu_page( 'plugin-slug', 'Plugin Overview', 'Overview', 'read', 'plugin-slug', $callback );
    
por Sam Wilson 31.03.2015 / 02:41

Tags