移除 WordPress 菜单生成函数 wp_nav_menu 所有/部分 class/id

如题,移除 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;
}

via:wp_nav_menu_remove_class_id

remove specific classes from menu items

除非注明,常阳时光文章均为原创,本文地址 https://cyhour.com/1204/AMP 移动加速版本)转载时必须以链接形式注明原始出处。
Vultr 送$25,搬瓦工年付最低$49,优惠码 BWH34QMFYT2R,更多推荐VPS信息,或支持老杨
Views: 30 Tags:  ,  , 

Comments:0

发表留言

Vultr 送$25,搬瓦工年付最低$49,优惠码 BWH34QMFYT2R,更多推荐VPS信息