Remove Default Menu Classes From wp_menu_nav

This is to reduce rather than to remove all CSS classes that WordPress adds to the nav menu ( wp_menu_nav ). This function removes all classes except ‘current-menu-item’. So, this leaves in ‘current-menu-item’.

For all list of all the menu classes the are inserted into wp_nav_menu by default, see Menu_Item_CSS_Classes.

/*
 * Removes all wp_menu_nav classes EXCEPT 'current-menu-item'
 */

function smartest_nav_class_filter( $var ) {
	return is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}
add_filter('nav_menu_css_class', 'smartest_nav_class_filter', 100, 1);

Note: This really isn’t necessary for the purpose I was using it for. I could have altered my CSS to not depend on the .last-item selector. But I find this is cleaner.

Questions and Comments are Welcome

Your email address will not be published. All comments will be moderated.

Please wrap code in "code" bracket tags like this:

[code]

YOUR CODE HERE 

[/code]