我想知道是否有办法从自定义链接中删除类?至少,我想从我的自定义链接“current-menu-ancestor current-menu-parent”中删除这些类,而不是从动态链接中删除。
我正在使用这段代码:
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-ancestor current-menu-parent')) : '';
}
它正在从所有静态和动态链接中删除css类。我只想从自定义链接中删除css类。
答案 0 :(得分:1)
您可以检查链接是否包含menu-item-object-custom
类,并使用结果有选择地过滤CSS类:
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($classes) {
// if this is not a custom link and not the home page, return the $classes intact, otherwise filter $classes
return is_array($classes) ?
(in_array("menu-item-object-custom", $classes) || is_front_page())?
array_diff($classes, array('current-menu-ancestor current-menu-parent'))
: $classes // not a custom link
: ''; // not an array
}