私は現在、基本的なwp_nav_menuコードでメニューを呼び出します。
<?php wp_nav_menu( array('theme_location' => 'primary') ); ?>
Schema.orgのマークアップを目的として、行要素にitemprop="url"
を追加する最も簡単な方法を見つけようとしています。しかし、私が見つけたコードはすべて非常に複雑に見えます。任意の助けは大歓迎です。他のメニューに影響を与えずに単純に線要素に影響を与える方法はありますか?
メニューの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 );