web-dev-qa-db-fra.com

Ajoutez itemprop Schema.org Markup aux éléments li dans wp_nav_menu

J'appelle actuellement les menus avec un code de base wp_nav_menu:

<?php wp_nav_menu( array('theme_location' => 'primary') ); ?>

J'essaie de trouver le moyen le plus simple d'ajouter itemprop="url" aux éléments de ligne aux fins du balisage Schema.org. Cependant, tous les codes que j'ai trouvés semblent trop complexes. Toute aide est grandement appréciée. Existe-t-il un moyen de simplement affecter les éléments de ligne sans affecter les autres menus?

1
AndrettiMilas

Pour ajouter des attributs aux éléments li du menu, vous devez écrire votre propre programme personnalisé qui étend la classe par défaut Walker_Nav_Menu (qui est elle-même une extension de la classe Walker). Pour plus d'informations: https://codex.wordpress.org/Class_Reference/Walker

Mais comme itemprop = "url" devrait normalement être ajouté aux éléments d'ancrage, vous pouvez utiliser le filtre nav_menu_link_attributes .

Par exemple, conformément à la documentation WP, l'ajout de cela à votre functions.php ajoutera l'attribut itemprop = "url" à vos éléments d'ancrage dans les éléments d'élément de liste de votre menu:

function add_menu_atts( $atts, $item, $args ) {
  $atts['itemprop'] = 'url';
  return $atts;
}
add_filter( 'nav_menu_link_attributes', 'add_menu_atts', 10, 3 );
2
pdme