私が見つけることができる唯一の方法は使用することですwp_get_nav_menu_items($menuID)
私は以下の私のメニューid
でそれをテストしました7
$items = wp_get_nav_menu_items( 7 );
foreach ($items as $i) {
echo $i->classes[0];
}
sample-page-class
外観メニューページで入力した出力。
すべてのメニュークラスはクラスとして関数に格納されるため、上記のようwp_get_nav_menu_items
にループアウトすることができます。foreach
次に、そのデータをに転送しますbody_class
。
さらに説明:
したがってbody_class
、functions.phpのフィルターは次のようになります。
add_filter('body_class','add_nav_menu_css');
function add_nav_menu_css($classes) {
$items = wp_get_nav_menu_items( 7 ); // change to id of your menu
foreach ($items as $i) {
$menuClasses .= $i->classes[0].' ';
}
$classes[] = $menuClasses;
return $classes;
}
現在のクラスのみを対象に編集
Functions.phpページへの入力
add_filter('body_class','my_class_names');
function my_class_names($classes)
{
$items = wp_get_nav_menu_items( 7 ); //change to suit your menu id
foreach ($items as $item):
$menuClasses = $item->classes;
$objectId = $item->object_id.' ';
if ( is_page($item->object_id) ):
$current[] = $menuClasses;
endif;
endforeach;
$classes[] = $current[0][0];
return $classes;
}
ドキュメントはこちら