【问题标题】:wrong wp_nav_menu displayed显示错误的 wp_nav_menu
【发布时间】:2012-10-03 00:32:37
【问题描述】:

我的网址如下所示: 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。

为什么?

【问题讨论】:

  • 把两个菜单都从逻辑里拿出来输出到外面,是不是一样的?
  • 它们不一样,这就是为什么如果 $post_type 是 'qa_faqs' 和 service_menu 如果 $post_type 不是 'qa_faqs' 我想显示 meta_menu。
  • 我遇到了同样的问题 (pastebin.com/H0GzFJz2) 当最上面的应该输出标题菜单时,他们都输出社交菜单,很奇怪。
  • 这真的把我逼疯了 =)

标签: wordpress


【解决方案1】:

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

同样的问题也让我发疯了。

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

【讨论】:

  • 这对我有帮助,谢谢!你能解释一下它为什么起作用吗?
  • 已经有一段时间了,所以我不知道我是否记错了,但我认为“menu”是您要使用的菜单的名称,“theme_location”是您要放置的位置那个菜单
  • 我也偶然发现了这个问题。我想在我真正解决它之前花了大约 1 个小时。 +1
  • 我使用的是'menu' =&gt; 'menu_name'。看起来合乎逻辑! 'theme_location' =&gt; 'menu_name' 完美运行。
  • 谢谢先生,这对我有帮助。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • service_menu 和 meta_menu 都在后端正确设置,并且在其他模板文件中按预期工作。
    猜你喜欢
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多