通过迭代wp_get_nav_menu_items(),使用nav类有什么好处吗?
Nav步行者在我看来非常笨重,迭代数组感觉更容易,更容易重用,但是它绕过了wordpress的内部菜单过滤器,我不太了解这些过滤器。这会使我的主题与某些插件不兼容吗?
这里的最佳实践建议将不胜感激。
发布于 2015-04-23 20:05:37
我想说的是,大多数情况下,您可以看到wp_nav_menu()的用法,使用 wp_get_nav_menu_items()也是如此。您可以将wp_nav_menu()与默认的步行器或自定义的步行器一起使用。
老实说,我不记得我用wp_get_nav_menu_items()或其他什么工具手动做菜单的时间,而且我倾向于懒惰,所以这肯定是更多的工作。
沃克类为您提供了很多可能性,因为有更多的信息可用,这肯定是很大的好处。因此,您是否应该使用步行器(我会说)使用wp_nav_menu(),这在很大程度上是一个您需要实现的问题,对于更复杂的菜单,我个人总是会使用步行器。最后但并非最不重要的是,步行者是很好的可重用,这是相当整洁和另一个优点。
发布于 2015-04-23 21:02:10
使用默认的步行器,它覆盖99.999999999999.. 999999999999%的例子通过它的过滤器,它是由一个比我们都聪明的人维护的,并且被很多人使用。
如果您需要做一些需要修改游行者的事情,请使用子类。
否则,您将失去与任何使用walker过滤器的功能的兼容性,导航菜单界面的一半功能将需要从头开始重新实现。
发布于 2015-04-23 21:23:41
灵活性和清洁度。
基于Walker的类是基于任何分支数据对象生成自定义输出的极好方法。它们使您的代码精益求精、刻薄、易读。您可以为每个“分支”的开始和结束定义输出(任何带有子菜单项的菜单项)以及每个节点/菜单项的开始和/或结束。使用WordPress的菜单对象生成复杂的自定义菜单标记是我的目标。
'walker' => new YourWalker定义为参数之一。https://wordpress.stackexchange.com/questions/185170
复制相似问题