删除NAV_MENU中除Current-Menu-Item和Current-Menu-Parent之外的所有类

时间:2011-10-06 作者:N2Mystic

幸亏Rarst\'s clever answer, 我正在成功地使用这些位从自定义菜单标记中删除类。。。

add_filter(\'nav_menu_css_class\', \'discard_menu_classes\', 10, 2);

function discard_menu_classes($classes, $item) {
    return (array)get_post_meta( $item->ID, \'_menu_item_classes\', true );
    }
但是,当我查看当前页面元素或当前菜单项的子项时,我确实需要当前菜单项和当前菜单父类。

是否可以在没有所有额外类的情况下添加这些类?

1 个回复
最合适的回答,由SO网友:goldenapples 整理而成

当然,您可以过滤掉所有的类,但不包括您想要的类。

add_filter(\'nav_menu_css_class\', \'discard_menu_classes\', 10, 2);

function discard_menu_classes($classes, $item) {
    $classes = array_filter( 
        $classes, 
        create_function( \'$class\', 
                 \'return in_array( $class, 
                      array( "current-menu-item", "current-menu-parent" ) );\' )
        );
    return array_merge(
        $classes,
        (array)get_post_meta( $item->ID, \'_menu_item_classes\', true )
        );
    }

结束

相关推荐