我能找到的唯一方法是使用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;
}
文档在这里