Wordpress 3.5 - 如何仅使用wp_nav_menu显示父级的子菜单?

时间:2013-03-07 18:31:13

标签: wordpress navigation

我想找到最简单的方法来获取具有wp_nav_menu函数的特定页面的子列表(存储在Appearances> Menus选项卡中)。

示例,我有这个名为“primary_navigation”的菜单:


服务
- 网站 - 设计
- 移动
联系

代码示例

<?php 
wp_nav_menu( array(
'theme_location' => 'primary_navigation',
'container'       => '',
'items_wrap' => '%3$s')
); 
?>

我如何只获取服务标签中的项目,例如:

  • 网络
  • 设计
  • 移动

我搜索的代码示例...

<?php 
    wp_nav_menu( array(
    'theme_location' => 'primary_navigation',
    'container'       => '',
    'child_of' => 'PARENT_ID'
    'items_wrap' => '%3$s')
    ); 
    ?>

我想使用 wp_nav_menu 功能,因为客户端更容易管理导航。

谢谢!


更新:
我找到了这个链接:https://wordpress.stackexchange.com/questions/2802/display-a-portion-branch-of-the-menu-tree-using-wp-nav-menu/2809#2809

它有效,但不完整,我发现它有点复杂。使用此解决方案,我无法通过父ID获取子元素,并且它似乎在名称中引用了问题。

如果你有更好的方法,我真的很感兴趣! :)

1 个答案:

答案 0 :(得分:2)

我相信我有一个更好的解决方案,在您的示例中,您将指定您正在寻找的parent_id。我写了一个插件,它可以让你简单地指定你想要的start_depth。因此,如果你想显示一个二级菜单,忽略第一级菜单项,你会给start_depth 1这样:

wp_nav_plus(array('theme_location' => 'primary_navigation', 'start_depth' => 1));

当然,在开始使用WP Nav Plus之前,您需要安装并激活插件。我的网站上提供了任何感兴趣的人:https://mattkeys.me/products/wp-nav-plus/

作为旁注:此功能是我使用过的许多其他内容管理系统的原生功能,我想知道为什么它不是Wordpress中的默认选项?我厌倦了所有的解决方法和他们特别的'怪癖',我最终写出了自己的解决方案。