Remover duplicado main - submenu em admin?

11

Quando uso add_menu_page& add_submenu_pagepara 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' );

Vou receber algo como

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

É possível criá-lo para que se torne

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

Em outras palavras, o Forms vinculará a Pedidos de emprego e eu não quero o item extra do submenu Forms

JM no Trabalho
fonte

Respostas:

10

Olá, @JM at Work:

Sim, infelizmente, a página do submenu é adicionada a todas as páginas do menu. Seria bom se houvesse uma opção, mas infelizmente não existe atualmente .

Para remover a opção de página do submenu no WordPress 3.1 ou usar muito remove_submenu_page()com códigos como este no functions.phparquivo do seu tema ou no .phparquivo de um plugin, você pode 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, precisará de unset()um elemento da variável global $submenucomo este:

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]);
}
MikeSchinkel
fonte
Muito obrigado ........... :)
Ridwan Pujakesuma
1

Eu tive que adicionar_submenu_page e 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');
Doug Cassidy
fonte
1

Eu sugeriria manter o item de menu extra, porque é assim que todos os outros menus do WP funcionam. (Eu sei que não foi isso 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 geralmente renomeio 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 );
Sam Wilson
fonte
1

Atribua o primeiro slug do submenu semelhante ao menu pai. No seu caso, substitua 'pedidos de emprego' pela opção 'formulários' do menu principal.

add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'forms', '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' );
Evgeniy Z.
fonte