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 显示父级的子菜单?的主要内容,如果未能解决你的问题,请参考以下文章

如何加快 WordPress 中的 GEO 搜索

如何将标题中的 Wordpress 滑块代码仅显示在主页中

如何找出正在运行的 WordPress 版本?

Wordpress WP设置

WordPress:如何使用 $wp_query 按类别过滤帖子?

Wordpress JSON api 获取所选项目