2013-03-07 39 views
2

我想找到使用wp_nav_menu函数获取特定页面的子列表(存储在“外观”>“菜单”选项卡中)的最简单方法。WordPress的3.5 - 如何只显示父wp_nav_menu的子菜单?

例子,我有这样的菜单,叫 “primary_navigation”:

首页
服务
- 网页
- 设计
- 移动
联系

的例子CODE

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

我怎样才能得到只有服务标签,例如里面的物品:

  • 网络
  • 设计
  • 移动
  • 正在搜索

示例代码我的FOR ...

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

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

谢谢!


UPDATE:
我发现这个链接:https://wordpress.stackexchange.com/questions/2802/display-a-portion-branch-of-the-menu-tree-using-wp-nav-menu/2809#2809

它的工作,但不是完全地,我发现它有点复杂。有了这个解决方案,我无法通过父母ID获得孩子元素,并且在名称中似乎有问题。

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

回答

2

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

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

当然,你需要安装和激活插件,然后才能开始使用WP Nav Plus。它可以在我的网站上为任何有兴趣的人提供:https://mattkeys.me/products/wp-nav-plus/

作为一个备注:这个功能是我用过的很多其他内容管理系统的原生功能,我想知道它为什么不是WordPress的默认选项?我厌倦了所有的解决方法和他们特别的“怪癖”,我终于写出了自己的解决方案。

+0

谢谢!正是我在寻找:) – 2013-06-06 23:03:56

+0

只是FYI,我已经更新了我的插件以包含一个Widget,对于任何可能是非开发人员的人来说,现在都很容易实现。 – 2013-06-18 04:07:24

+0

这个插件已被进一步更新。新版本不再要求您使用不同的功能,它现在直接将“start_depth”参数添加到内置的wp_nav_menu函数中。 – 2014-03-22 03:58:16