2012-10-12 94 views
10

我的网址是这样的: http://domain.com/?s=searchquery&post_type=qa_faqs错wp_nav_menu显示

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

然后,我

$post_type = $_GET['post_type']; 

得到这个职位类型它正确地呼应

echo $post_type; 
// Provides: qa_faqs 

然后我做一个的if/else显示经由wp_nav_menu不同的菜单时$ post_type是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)); 
} 

现在到了有趣的部分:

即使页面神偷“我们得到了在这里qa_faqs”,它显示service_menu。

为什么?

+0

把两个菜单拿出逻辑并输出到外面,它们是一样的吗? – SMacFadyen

+0

他们不一样,这就是为什么我要显示meta_menu,如果$ post_type是'qa_faqs',service_menu如果$ post_type不是'qa_faqs'。 – joko13

+0

我有同样的问题(http://pastebin.com/H0GzFJz2),他们都输出社交菜单,当顶部应该输出标题菜单,很奇怪。 – Neros

回答

31

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

同样的问题是驾驶我坚果以及。

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

+0

这帮了我,谢谢!你能解释它为什么起作用吗? –

+0

已经有一段时间了,所以我不知道如果我没有记错,但我认为'菜单'是你想要使用的菜单的名称,'theme_location'是你想要放置该菜单的地方 – Neros

+0

我也偶然发现这个问题。我认为在我真正解决它之前花了大约1个小时。 +1 – Cyclonecode

0

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

+0

service_menu和meta_menu都在后端正确设置,并在其他模板文件中按预期工作。 – joko13

3

尝试的东西,如靶向特定菜单:

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