php - Remove all nav menu classes ( but keep useful ones... )

I'm trying to remove all menu-item classes (except for .current-menu-{itemparentancestor} and .menu-item-has-chil

I'm trying to remove all menu-item classes (except for .current-menu-{item/parent/ancestor} and .menu-item-has-children)

function custom_nav_menu_css_class($classes) {
    $classes = preg_replace('/^((menu|page)[-_\w+]+)+/', '', $classes);
    return $classes;
}
add_filter('nav_menu_css_class', 'custom_nav_menu_css_class');

This almost does the job, except it removes .menu-item-has-children? Any idea what I should change, to exclude it from being removed?

(P.S. I'd rather not use a custom walker...)

I'm trying to remove all menu-item classes (except for .current-menu-{item/parent/ancestor} and .menu-item-has-children)

function custom_nav_menu_css_class($classes) {
    $classes = preg_replace('/^((menu|page)[-_\w+]+)+/', '', $classes);
    return $classes;
}
add_filter('nav_menu_css_class', 'custom_nav_menu_css_class');

This almost does the job, except it removes .menu-item-has-children? Any idea what I should change, to exclude it from being removed?

(P.S. I'd rather not use a custom walker...)

Share Improve this question edited Feb 8, 2014 at 20:32 Lisa asked Feb 8, 2014 at 20:26 LisaLisa 1358 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

You could work with a white-list and replace the regular expression with something more readable:

add_filter( 'nav_menu_css_class', function( $classes ) {

    $allowed = [
        'menu-item-has-children',
        'current-menu-item'
    ];

    return array_intersect( $classes, $allowed );
});

That would make it easier to maintain the white-list too.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744908814a4600423.html

相关推荐

  • php - Remove all nav menu classes ( but keep useful ones... )

    I'm trying to remove all menu-item classes (except for .current-menu-{itemparentancestor} and .menu-item-has-chil

    1天前
    50

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信