Wordpress:从自定义添加的链接中删除类

时间:2012-10-16 15:16:25

标签: wordpress

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

1 个答案:

答案 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
}