¿Eliminar el menú principal duplicado en el administrador?

9

Cuando uso add_menu_page & add_submenu_page para agregar elementos de menú,

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

Obtendré algo como

  • formularios
    • Formularios
    • Solicitudes de empleo
    • solicitudes de cotización
    • Contactos

¿Es posible crearlo de tal manera que se convierta en

  • formularios
    • Solicitudes de empleo
    • solicitudes de cotización
    • Contactos

En otras palabras, los formularios se vincularán con las solicitudes de empleo y no quiero el elemento adicional del submenú Formularios

    
pregunta JM at Work 05.05.2011 - 08:07

3 respuestas

6

Hola @JM en el trabajo:

Sí, desafortunadamente, la página del submenú se agrega a cada página del menú. Sería bueno si hubiera una opción pero, por desgracia, actualmente no hay .

Para eliminar la opción de la página del submenú en WordPress 3.1 o el gran uso remove_submenu_page() con código como este en el archivo functions.php de su tema, o en un archivo .php de un complemento que podría estar escribiendo:

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

Si todavía estás usando WordPress 3.0, tienes que unset() un elemento de la variable global $submenu como esto:

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]);
}
    
respondido por el MikeSchinkel 05.05.2011 - 10:15
1

Tuve que agregar_submenu_page, luego eliminarlo (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');
    
respondido por el Doug Cassidy 09.12.2014 - 02:13
1

Sugeriría mantener el elemento de menú adicional, ya que así es como funcionan todos los demás menús de WP. (¡Sé que no es lo que pediste! ...) La forma en que funcionan los otros menús de nivel superior es que tienen etiquetas diferentes para el título del menú grande y el duplicado debajo de él (por ejemplo, "Usuarios", "Todos los usuarios"; 'Herramientas', 'Herramientas disponibles'). Creo que es bueno seguir con el mismo paradigma, por lo que generalmente cambio el nombre del primer submenú como este:

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

Lea otras preguntas en las etiquetas