0

我想知道是否有任何方法可以仅从自定义链接中删除类?至少,我想从我的自定义链接“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 类。

4

1 回答 1

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
}
于 2012-10-16T15:45:13.587 回答