Eliminar duplicado principal - submenú en admin?

11

Cuando uso add_menu_page& add_submenu_pagepara 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

  • Formas
    • Formas
    • Solicitudes de empleo
    • Solicitudes de cotización
    • Contactos

¿Es posible crearlo de manera que se convierta

  • Formas
    • Solicitudes de empleo
    • Solicitudes de cotización
    • Contactos

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

JM en el trabajo
fuente

Respuestas:

10

Hola @JM en el trabajo:

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

Para eliminar la opción de página de submenú en WordPress 3.1 o un gran uso remove_submenu_page()con código como este en el functions.phparchivo de su tema , o en un .phparchivo 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á utilizando WordPress 3.0, tiene unset()un elemento de la variable 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
fuente
Muchas gracias ........... :)
Ridwan Pujakesuma
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');
Doug Cassidy
fuente
1

Sugeriría mantener el elemento de menú adicional, porque 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 diferentes etiquetas 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 elemento del submenú de esta manera:

<?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
fuente
1

Asigne el primer slug de submenú similar al menú principal. En su caso, reemplace las 'solicitudes de trabajo' con la babosa del menú principal 'formularios'.

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.
fuente