web-dev-qa-db-ja.com

Wp_nav_menuのli要素にitemprop Schema.orgマークアップを追加します。

私は現在、基本的なwp_nav_menuコードでメニューを呼び出します。

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

Schema.orgのマークアップを目的として、行要素にitemprop="url"を追加する最も簡単な方法を見つけようとしています。しかし、私が見つけたコードはすべて非常に複雑に見えます。任意の助けは大歓迎です。他のメニューに影響を与えずに単純に線要素に影響を与える方法はありますか?

1
AndrettiMilas

メニューのli要素に属性を追加するには、デフォルトのWalker_Nav_Menuクラス(それ自体はWalkerクラスの拡張)を拡張する独自のカスタムwalkerを作成する必要があります。詳細については、 https://codex.wordpress.org/Class_Reference/Walker

しかし、itemprop = "url"は通常アンカー要素に追加されるので、 nav_menu_link_attributes フィルタを使うことができます。

たとえば、WP docsのように、これを自分のfunctions.phpに追加すると、メニューのリスト項目要素内のアンカー要素に属性itemprop = "url"が追加されます。

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