在我的主题中,我需要不同的nav\\U步行者,我希望能够为每个菜单调用两个不同的nav\\U menu\\U css\\U class-es,唉,它们似乎适用于全球范围。这是我的
function onpage_nav_menu_css_class($classes, $item) {
$slug = sanitize_title($item->title);
$classes = preg_replace(\'/(current(-menu-|[-_]page[-_])(item))/\', \'active\', $classes);
$classes = preg_replace(\'/(current(-menu-|[-_]page[-_])(ancestor|parent))/\', \'\', $classes);
$classes = preg_replace(\'/^((menu|page)[-_\\w+]+)+/\', \'\', $classes);
$classes[] = \'menu-\' . $slug;
$classes = array_unique($classes);
return array_filter($classes, \'is_element_empty\');
}
add_filter(\'nav_menu_css_class\', \'onpage_nav_menu_css_class\', 1, 2);
add_filter(\'nav_menu_item_id\', \'__return_null\');
SO网友:s_ha_dum
这个third parameter passed into nav_menu_css_classes
应该为您提供整理不同菜单所需的信息。尝试:
function onpage_nav_menu_css_class($classes, $item, $args) {
var_dump($args);
return $classes;
}
add_filter(\'nav_menu_css_class\', \'onpage_nav_menu_css_class\', 1, 3);
注意:这会把你的页面弄得一团糟。它是仅用于调试/开发的代码。我认为
theme_location
应足以满足您的目的。只需检查该值,并在此基础上有条件地应用您的类。