如题,移除 WordPress 菜单生成函数 wp_nav_menu 所有/部分 class/id,折腾主题可能用得上。
移除所有 class/id
add_filter( 'nav_menu_css_class', 'my_css_attributes_filter', 100, 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() : '';
}
移除指定 class/id 外其他所有 class/id
只剩下 current-menu-item:
add_filter( 'nav_menu_css_class', 'my_css_attributes_filter', 100, 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' ) ) : '';
}
移除指定 class/id
只移除 current-menu-item:
add_filter( 'nav_menu_css_class', 'special_nav_class', 100, 2 );
function special_nav_class($classes, $item){
if(($key = array_search('current-menu-item', $classes)) !== false) {
unset($classes[$key]);
}
return $classes;
}
移除空 class
add_filter ( 'wp_nav_menu','strip_empty_classes' );
function strip_empty_classes( $menu ) {
$menu = preg_replace( '/ class=(["\'])(?!active).*?\1/', '', $menu );
return $menu;
}
Comments:0