13

我的网址如下所示: http ://domain.com/?s=searchquery&post_type=qa_faqs

该页面列出了“searchquery”的搜索结果。

然后我得到帖子类型

$post_type = $_GET['post_type'];

它正确地回响

echo $post_type;
// Provides: qa_faqs

然后,当 $post_type 为 qa_faqs 时,我执行 if/else 以通过 wp_nav_menu 显示不同的菜单。

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 ));
}

现在到有趣的部分:

即使页面回显“我们在这里有 qa_faqs”,它也会显示 service_menu。

为什么?

4

3 回答 3

49

找到它 - http://codex.wordpress.org/Navigation_Menus

同样的问题也让我发疯。

使用 'theme_location' 而不是 'menu' 来指向您要输出的菜单。

于 2012-11-03T02:09:07.087 回答
5

尝试使用以下内容定位特定菜单:

<?php wp_nav_menu( array('menu' => 'Your Menu Name' )); ?>
于 2012-10-12T09:09:24.293 回答
0

我认为您在 meta_menu 上没有任何项目。请在外观部分下创建菜单并分配它。:)

于 2012-10-12T08:36:15.310 回答