Wordpress 3.5 - 如何仅使用 wp_nav_menu 显示父级的子菜单?
Posted
技术标签:
【中文标题】Wordpress 3.5 - 如何仅使用 wp_nav_menu 显示父级的子菜单?【英文标题】:Wordpress 3.5 - How to only show the sub menu of a parent with wp_nav_menu? 【发布时间】:2013-02-23 02:41:33 【问题描述】:我想找到使用 wp_nav_menu 函数获取特定页面的子列表(存储在外观 > 菜单选项卡中)的最简单方法。
例如,我有这个菜单,叫做“primary_navigation”:
首页服务 - 网络 - 设计 - 移动联系方式
代码示例
<?php
wp_nav_menu( array(
'theme_location' => 'primary_navigation',
'container' => '',
'items_wrap' => '%3$s')
);
?>
如何只获取 Services 选项卡中的项目,例如:
网络 设计 移动我正在搜索的代码示例...
<?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】:我相信我有一个更好的解决方案,在您的示例中,您将指定您正在寻找的 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 中的默认选项?我厌倦了所有的变通方法和它们的特殊“怪癖”,所以我终于编写了自己的解决方案。
【讨论】:
谢谢!正是我想要的:) 仅供参考,我已经更新了我的插件以包含一个小部件,现在对于可能是非开发人员的任何人来说都非常容易实现。 此插件已进一步更新。新版本不再要求您使用不同的函数,它现在将“start_depth”参数直接添加到内置的 wp_nav_menu 函数中。以上是关于Wordpress 3.5 - 如何仅使用 wp_nav_menu 显示父级的子菜单?的主要内容,如果未能解决你的问题,请参考以下文章