Cómo verificar si existe un menú con un nombre específico

2 minutos de lectura

¿Cómo verificar si existe un menú con nombre, por ejemplo, ‘topnavbar’ en WordPress 3?

  • ¿A qué te refieres exactamente con “menú”? ¿Un menú en el back-end?

    – Peka

    23 de octubre de 2010 a las 12:53

  • Me refiero al menú que puedes hacer en el área de administración. Necesito verificar mediante programación si existe el menú con algún nombre y luego usarlo de la siguiente manera: wp_nav_menu(array(‘menu’ => ‘navbar’, ‘profundidad’ => ‘1’, ‘walker’ => $walker) );

    – Sergei Basharov

    23 de octubre de 2010 a las 12:54

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

  • ¡Respuesta engañosa! Prueba por menú posiciónno nombre de menú / id.

    – frnhr

    2 de agosto de 2013 a las 1:25

  • ¡Comentario engañoso! prueba si existe un menú en una posición específica. El comentario es engañoso porque me desconcertó un poco. Creo que la mayoría de la gente viene aquí buscando has_nav_menu() (Quiero decir, ¿por qué querrías saber cómo nombró el usuario el menú…?) De la fuente de has_nav_menu(): @return bool Whether location has a menu.

    – pironauro

    7 de noviembre de 2013 a las 10:35


  • “¿Por qué querrías saber?” En parte porque eso es lo que preguntó el autor de la pregunta, y eso debería ser suficiente. Si no sabe la respuesta, no debe 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 publicaciones secundarias personalizadas, porque son muchos y las entradas del submenú deben coincidir con su estado publicado. .

    –Henrik Erlandsson

    31 de enero de 2014 a las 9:54


  • “¿Por qué querrías saber cómo nombró el usuario al menú?” Lo hago en algunas circunstancias.

    – DrLightman

    16 sep 2021 a las 10:28

avatar de usuario
Damian Jakusz-Gostomski

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

  • Esto funciona tanto para la identificación del menú [‘menu_id’] y nombre del menú [‘menu’].

    –Henrik Erlandsson

    31 de enero de 2014 a las 10:03

Hay una etiqueta condicional is_nav_menu( $id ) que verifica si la identificación, el slug o el nombre dados son un menú de navegación:

if ( is_nav_menu( 'topnavbar' ) ) {
    // do something
}

Códice: https://codex.wordpress.org/Function_Reference/is_nav_menu

¿Ha sido útil esta solución?