je veux désactiver la classe de menu par défaut, le code ci-dessous est complètement la classe de menu.
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')) :
'';
}
mais maintenant, c'est quand même j'ajoute une classe personnalisée dans le menu
exemplenavconcette classe ne vient pas. Je comprends un peu à cause de add_filter('nav_menu_css_class', 'my_css_attributes_filter', 10, 1);
donc est-il possible de désactiver simplement toutes les classes de defualt mais si avoir classe personnalisée alors il va ajouter
mon code de piétinement est <?php wp_nav_menu( array('menu' => 'mainmenu','items_wrap'=>'%3$s', 'container' => false)); ?>
j'ai eu une réponse d'un autre fil .. qui est ci-dessous
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