ich möchte die Standard-Menüklasse deaktivieren. Der folgende Code ist die vollständige Deaktivierung der Menüklasse.
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')) :
'';
}
aber jetzt ist das Problem, wenn ich sogar eine benutzerdefinierte Klasse im Menü hinzufüge
beispielnavcondiese Klasse kommt nicht. Ich verstehe es ein bisschen wegen add_filter('nav_menu_css_class', 'my_css_attributes_filter', 10, 1);
so gibt es eine Möglichkeit, einfach alle defualt Klasse zu deaktivieren, aber wenn benutzerdefinierte Klasse haben, dann wird es hinzufügen
mein trampelcode ist <?php wp_nav_menu( array('menu' => 'mainmenu','items_wrap'=>'%3$s', 'container' => false)); ?>
ich habe eine Antwort von einem anderen Thread ... der unten ist
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 )
);
}
ref: http://wordpress.stackexchange.com/questions/30417/removing-all-classes-from-nav-menu-except-current-menu-item-and-current-menu-par