wp_nav_menu incorrecto mostrado

2 minutos de lectura

mi URL se ve así:
http://dominio.com/?s=searchquery&post_type=qa_faqs

esa página enumera los resultados de búsqueda para “searchquery”.

luego obtengo el tipo de publicación con

$post_type = $_GET['post_type'];

hace eco correctamente

echo $post_type;
// Provides: qa_faqs

Luego hago un if/else para mostrar un menú diferente a través de wp_nav_menu cuando $post_type es qa_faqs.

if ( $post_type == 'qa_faqs' ) {
  echo 'we got qa_faqs over here';
  wp_nav_menu(array('menu' => 'meta_menu', 'items_wrap' => '<dl id="%1$s" class="nice tabs vertical %2$s">%3$s</dl>', 'walker' => new sidenav_walker ));
} else {
  echo 'no qa_faqs in da house';
  wp_nav_menu(array('menu' => 'service_menu', 'items_wrap' => '<dl id="%1$s" class="nice tabs vertical %2$s">%3$s</dl>', 'walker' => new sidenav_walker ));
}

ahora a la parte divertida:

aunque la página dice “tenemos qa_faqs aquí”, muestra el menú service_menu.

¿Porque eso?

  • Saque ambos menús de la lógica y envíelos afuera, ¿son iguales?

    – SMacFadyen

    12 de octubre de 2012 a las 8:25

  • no son lo mismo, por eso quiero mostrar meta_menu si $post_type es ‘qa_faqs’ y service_menu si $post_type no es ‘qa_faqs’.

    – joko13

    12 de octubre de 2012 a las 9:01

  • Estoy teniendo el mismo problema (pastebin.com/H0GzFJz2) ambos muestran el menú social cuando el superior debería mostrar el menú de encabezado, muy extraño.

    – Nerón

    3 de noviembre de 2012 a las 1:39

  • Esto realmente me estaba volviendo loco =)

    – Cyclonecode

    10 de febrero de 2017 a las 21:12

Lo encontré – http://codex.wordpress.org/Navigation_Menus

El mismo problema también me estaba volviendo loco.

Use ‘theme_location’ en lugar de ‘menu’ para señalar el menú que desea mostrar.

  • Esto me ayudó, gracias! ¿Podría explicar por qué funcionó?

    – David Colmillo

    13 de febrero de 2015 a las 11:18

  • Ha pasado un tiempo, así que no sé si recuerdo correctamente, pero creo que ‘menú’ es el nombre del menú que desea usar y ‘tema_ubicación’ es donde desea colocar ese menú.

    – Nerón

    13 de febrero de 2015 a las 21:29

  • También me topé con este problema. Creo que tomó alrededor de 1 hora antes de que realmente lo resolviera. +1

    – Cyclonecode

    10 de febrero de 2017 a las 21:03

  • yo estaba usando 'menu' => 'menu_name'. ¡Parecía lógico! 'theme_location' => 'menu_name' funciona perfectamente.

    – rocío

    17 de julio de 2018 a las 14:04

  • Gracias señor, esto me ayudó.

    – zen_1991

    18 de octubre de 2018 a las 8:49

Intente apuntar al menú específico con algo como:

<?php wp_nav_menu( array('menu' => 'Your Menu Name' )); ?>

Creo que no tienes ningún elemento en el meta_menu. Cree un menú en la sección Apariencia y asígnelo. 🙂

  • tanto service_menu como meta_menu están configurados correctamente en el backend y funcionan como se esperaba en otros archivos de plantilla.

    – joko13

    12 de octubre de 2012 a las 9:02

¿Ha sido útil esta solución?