Benefits of using Nav Walker?

时间:2015-04-23 作者:Guerrilla

使用nav walker类比遍历wp\\u get\\u nav\\u menu\\u items()有什么好处吗?

Nav Walker对我来说似乎很笨重,在数组上进行迭代感觉更容易,也更易于重用,但它绕过了wordpress的内部菜单过滤器,而我对其了解不多。这会使我的主题与一些插件不兼容吗?

如能在此提供最佳实践建议,将不胜感激。

3 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

我想说的主要是你看到wp_nav_menu(), 是的use wp_get_nav_menu_items(). 您可以使用wp_nav_menu() 使用默认walker或自定义walker。

老实说,我不记得什么时候我用wp_get_nav_menu_items() 或者别的什么,而我倾向于懒惰,所以这肯定是更多的工作。

这个Walker Class 因为有更多的可用信息,所以给您提供了很多可能性,这无疑是一个巨大的优势。所以,你是否应该利用助行器,或者(我会说)使用wp_nav_menu() - 这很大程度上是一个你需要实现什么的问题,对于更复杂的菜单,我个人总是会带着助行器。最后但并非最不重要的一点是,Walker可以很好地重复使用,这是非常整洁的另一个优点。

SO网友:Tom J Nowell

使用默认walker,它覆盖99.999999999。。。999999999999%的实例都是通过它的过滤器实现的,它是由比我们都聪明的人维护的,并且被很多人使用。

如果需要修改walker,请使用子类。

否则,您将失去与使用walker过滤器的任何东西的兼容性,导航菜单界面的一半功能将需要从头开始重新实现

SO网友:Matt van Andel

灵活性和;清洁度。

基于Walker的类是基于任何分支数据对象生成自定义输出的极好方法。它们使您的代码简洁、平均、易读。您可以为开始定义输出and 每个“分支”(带有子菜单项的任何菜单项)的结束以及开始and/or 每个单独节点/菜单项的结尾。我的目标是使用WordPress的菜单对象生成复杂的自定义菜单标记。

首先,创建自定义walker类\'walker\' => new YourWalker 作为论点之一

See more about the Walker class\'s usage here.

结束

相关推荐

Appearance > Menus

我已经添加了自定义WordPress管理菜单和页面,但是,我希望它出现在“外观>菜单”部分,以便用户可以将其添加到其网站的菜单结构中。请让我知道如何做到这一点。以下是我在管理页面上添加的自定义菜单示例:现在,我想在管理部分的外观>菜单中添加这些自定义页面:如果有人能帮忙,我将不胜感激。幸亏damienoneill2001, 我可以在外观>菜单中添加分类项,但是,如何在示例中的Generes/Writer中添加内容?这就是我添加自定义管理菜单的方式,我希望它们中的每一个(产品、促销、产品类