清理wordpress菜单里的 id 和 class

wordpress 默认的菜单会产生很多 id 和 class 在代码里,打多时候,这些都是不需要的。

通过下面2个滤镜,可以去除那些我们不需要的 class 和 ID

add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
	$current_and_home = array("current-menu-item", "menu-item-home", 'last');
	$classes = array_intersect($item->classes,$current_and_home);
        //保留有需要的 class
	return $classes;
}

add_filter('nav_menu_item_id' , 'special_nav_item_id' , 10 , 2);
function special_nav_item_id($item_id, $item){
        $item_id = ""; //去除 id
	return $item_id;
}

清理之后如:

不过尚有 class=”” 无法除去,主要是在核心代码里,class=””是在附加过滤后面加上得,所以暂时还不可以通过更改滤镜的方法去除,但是 id 属性可以完全去除


Comments

214 responses to “清理wordpress菜单里的 id 和 class”