2010-10-23 8 views
6

¿Cómo comprobar si existe un menú con el nombre, por ejemplo 'topnavbar' en WordPress 3?Cómo comprobar si existe un menú con nombre específico

+0

¿Qué quiere decir por "menú" exactamente? Un menú en el back-end? –

+0

Me refiero al menú que puedes hacer en el área de administración. Necesito comprobar programáticamente si el menú con algún nombre existe y luego usar algo como esto: wp_nav_menu (array ('menú' => 'navbar', 'profundidad' => '1', 'walker' => $ walker)); –

Respuesta

4

Si echa un vistazo al código de la función wp_nav_menu, una de las primeras cosas que hace es obtener el menú con ese nombre, utilizando la función wp_get_nav_menu_object. Esta función devolverá el menú, o falso si no existe

+0

Esto funciona tanto para el id del menú ['menu_id'] como para el nombre del menú ['menu']. –

10

has_nav_menu() suena como lo que está buscando. http://codex.wordpress.org/Function_Reference/has_nav_menu

+2

¡Respuesta engañosa! Prueba la posición ** del menú **, no el nombre/id del menú. – frnhr

+5

¡Comentario engañoso! Prueba ** si existe un menú en una posición especificada **. El comentario es engañoso porque me desanimó un poco. Creo que la mayoría de la gente viene aquí buscando has_nav_menu() * (quiero decir, ¿por qué querrías saber realmente qué nombre tiene el usuario del menú ...) * desde la fuente de has_nav_menu(): '@return bool Si la ubicación tiene un menú. – Norris

+0

"¿Por qué querrías saber?" En parte porque eso es lo que preguntó el invocador, y eso debería ser suficiente. Si no sabes la respuesta, no deberías responder cuestionando sus motivos. Quiero saber porque en mi sitio actual el cliente debe tener control sobre algunos submenús (es decir, crear los menús en el administrador) y tener algunos submenús generados a partir de correos personalizados secundarios, porque son muchos y las entradas del submenú deben coincidir con su estado publicado . –

Cuestiones relacionadas