Y a-t-il des avantages à utiliser une classe de nav walker sur l'itération via wp_get_nav_menu_items ()?
Les navetteurs de navigation semblent très maladroits pour moi et itérer sur un tableau semble plus facile et plus réutilisable, mais il contourne ensuite les filtres de menu internes de Wordpress que je ne connais pas beaucoup. Est-ce que cela rendra mon thème incompatible avec certains plugins?
Les meilleurs conseils de pratique ici seraient grandement appréciés.
Je dirais que la plupart du temps, vous voyez l’usage de wp_nav_menu()
, ce qui utilisewp_get_nav_menu_items()
. Vous pouvez utiliser wp_nav_menu()
avec le walker par défaut ou un walker personnalisé.
Pour être honnête, je ne me souviens pas du moment où j'ai créé un menu manuellement, avec wp_get_nav_menu_items()
ou quelque chose d'autre, et j'ai tendance à être paresseux, donc c'est certainement plus de travail.
La classe Walker vous donne beaucoup de possibilités car il y a plus d'informations disponibles, ce qui est définitivement un gros plus. Donc, si vous devez tirer parti d'un marcheur - ou d'une autre manière (je dirais), utiliser wp_nav_menu()
- dépend plutôt de ce que vous devez accomplir. Pour des menus plus complexes, personnellement, j'irais toujours avec un marcheur. Enfin, les randonneurs sont joliment réutilisables, ce qui est très soigné et un autre avantage.
Utilisez le walker par défaut, il couvre 99,999999999999 ... ... 999999999999% via ses filtres, et il est géré par une personne plus intelligente que nous deux et utilisée par beaucoup de gens.
Si vous devez faire quelque chose qui nécessite de modifier le randonneur, utilisez une sous-classe.
Sinon, vous perdrez la compatibilité avec tout ce qui utilise les filtres de navigation et la moitié des fonctionnalités de l'interface du menu de navigation devront être réimplémentées à partir de zéro.
Flexibilité et propreté.
Les classes basées sur Walker constituent un excellent moyen de générer une sortie personnalisée basée sur n'importe quel objet de données ramifié. Ils maintiennent votre code mince, moyen et facilement lisible. Vous pouvez définir la sortie pour le début et la fin de chaque "branche" (tout élément de menu comportant des éléments de sous-menu), ainsi que pour le début et/ou fin de chaque noeud/élément de menu individuel. C'est mon moyen de générer des balises de menu personnalisées complexes à l'aide des objets de menu de WordPress.
'walker' => new YourWalker
comme l’un des arguments.