2012-07-23 24 views
6

En un complemento de WordPress que estoy creando, está creando un nuevo menú de administrador de nivel superior con una página de submenú. Aquí está mi código:Wordpress agrega submenús al menú personalizado

add_menu_page('Eastview Custom', 'Eastview Custom', 5,"eastview-custom"); 
add_submenu_page("eastview-custom","GLS Lunch Orders","GLS Lunch",5,'glsLunch','glsLunch'); 

Así que este código crea un nuevo menú de administración, "Eastview Custom". Luego agrega dos enlaces secundarios: "Eastview Custom" y "GLS Lunch". El problema es que no quiero "Eastview Custom" como un sublink. Me gustaría que el único enlace secundario sea "Almuerzo GLS". No puedo entender cómo hacer esto. ¡Gracias por cualquier ayuda!

Respuesta

8

Según el códice

En situaciones en las que un plugin está creando su propio menú de nivel superior, el primer submenú normalmente tienen el mismo título del enlace como el menú de nivel superior y, por tanto, el enlace será duplicado El título del enlace duplicado se puede evitar llamando a la función add_submenu_page la primera vez con los parámetros parent_slug y menu_slug con el mismo valor.

que se puede ver en esta página aquí: http://codex.wordpress.org/Adding_Administration_Menus#Sub-Menus

Así que de acuerdo con el Codex debe ser capaz de tener algo como lo siguiente (nota que he sustituido el parámetro niveles de usuario con capacidades que se están en desuso, y lo estandarizó todo para comillas simples);

add_menu_page('Eastview Custom', 'Eastview Custom', 'manage_options', 'my-top-level-handle'); 
add_submenu_page('my-top-level-handle', 'GLS Lunch Orders', 'GLS Lunch', 'manage_options', 'my-top-level-handle'); 

Ahora usted pensaría que esto funcionaría basado en el Codex - no es así. No mostrará ningún elemento del menú secundario simplemente porque solo hay uno de ellos. Si agrega otro artículo, verá que esto funciona, es decir;

add_menu_page('Eastview Custom', 'Eastview Custom', 'manage_options', 'my-top-level-handle'); 
add_submenu_page('my-top-level-handle', 'GLS Lunch Orders', 'GLS Lunch', 'manage_options', 'my-top-level-handle'); 
add_submenu_page('my-top-level-handle', 'New Item', 'New item', 'manage_options', 'new-handle'); 

Espero que esto ayude un poco, ¡lástima que no pude encontrar la respuesta para el elemento de la lista única!

+0

bien, gracias. Lo siento, no respondí antes. Está bien, en el sitio web en el que estoy usando esto, habrá más de una página de submenú. Solo quería saber cómo eliminar el enlace duplicado. ¡Gracias! – Abraham

+0

No molestes, eso es útil entonces, problema resuelto! :) – McNab

+1

¡Excelente para mí! Me costó mucho buscar en la documentación de Wordpress. Gracias. –

0

la alternativa es que se puede quitar el submenú después de crear el menú principal

add_menu_page('Eastview Custom', 'Eastview Custom', 5,"eastview-custom"); 
add_submenu_page("eastview-custom","GLS Lunch Orders","GLS Lunch",5,'glsLunch','glsLunch'); 
remove_submenu_page("eastview-custom", "eastview-custom"); 
Cuestiones relacionadas