WP_GET_NAV_MENU_ITEMS与WP_NAV_MENU

时间:2018-07-09 作者:DmitriyRF

我是WordPress开发新手,我正在寻找构建自定义WordPress菜单的最佳方法

我找到了两种服务器端的方法来实现这一点,但我不了解它们之间更深层次的区别

菜单可能会使用wp\\u nav\\u menu函数构建,并且为此需要,crate扩展了Walker\\u nav\\u menu的类。为了满足这一需要,在主题中有一个主类的副本,并更改更多代码,或者我们可以使用wp\\u get\\u nav\\u menu\\u items函数,通过给它指定菜单位置来获取所有项的数组以构建html输出。它将更加简单,无需了解复杂的Walker类,因此,构建菜单的最佳方式是什么,或者这些函数的主要区别是什么<谢谢

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

wp_get_nav_menu_items 函数检索给定菜单的菜单项数组。但菜单是一个层次结构,因此需要创建一些机制,根据菜单项列表创建层次结构。

另一方面,已经有wp_nav_menu, 将获取该菜单的项目(使用wp_get_nav_menu_items) 然后将其传递给Walker类,该类将为该菜单生成HTML代码。此功能还将处理给定菜单不存在等情况。建议以主题显示菜单。

另外,我不明白为什么你认为你“必须”写你自己的Walker类。您当然不会。WP将使用它自己的Walker类作为默认类。如果您想自定义该菜单的HTML代码,可以编写过滤器,大多数情况下就足够了。。。

结束

相关推荐

Custom Menus and taxonomies

好的,我刚开始使用WordPress,不是很好,我有一个菜单问题,我真的需要一些帮助。我在一个网站上工作,它有多个地点,并非所有地点都销售相同的产品。所有位置都是具有父结构的页面。俄亥俄州-联系我们-关于我们-产品等。。。西弗吉尼亚州-联系我们-关于我们-产品等。。。宾夕法尼亚州-联系我们-关于我们-产品等我掌握了自定义页面模板的窍门,并为其添加了自定义菜单(因此,我所有的Ohio页面都使用了我制作的自定义Ohio模板,并包含了自定义Ohio菜单)。我正在使用帖子创建产品信息页面,并使用以下方式显示它们: