如何禁用默认菜单类

时间:2016-04-08 作者:pagol

我想禁用默认菜单类,下面的代码是完全禁用菜单类。

add_theme_support( \'menus\' );
add_filter(\'nav_menu_css_class\', \'my_css_attributes_filter\', 10, 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-item\', \'current-menu-ancestor\')) :
    \'\';
}
但现在的问题是,即使我在菜单中添加自定义类

enter image description here

实例navcon 那节课不来了。我了解一点是因为add_filter(\'nav_menu_css_class\', \'my_css_attributes_filter\', 10, 1); 所以,有没有办法只禁用所有default类,但如果有自定义类,那么它将添加

我的践踏代码是<?php wp_nav_menu( array(\'menu\' => \'mainmenu\',\'items_wrap\'=>\'%3$s\', \'container\' => false)); ?>

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

我从另一个帖子得到了答案。。这就是贝娄

    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 )
        );
    }
参考号:http://wordpress.stackexchange.com/questions/30417/removing-all-classes-from-nav-menu-except-current-menu-item-and-current-menu-par

相关推荐

Custom items for Menus

编辑菜单时,我发现可以添加5种类型的项目:自定义链接页面帖子类别标签是否可以添加自定义的?比如说,我想添加一个图像,或者一个搜索栏,或者其他什么。我是否可以添加新的菜单项类型,以呈现我为它们选择的代码?