2020-11-01 / 5726阅
导航菜单中会多出很多CALSS属性,如果你需要需要,你可以选择性的删除多余的CLASS属性。菜单的样式有三种情况。
我们可以通过内置的钩子改变原有的输出,ID是不能重复的,在输出的时候要注意。以下代码直接清除了ID。
//过滤导航菜单的ID属性 function my_css_attributes_filter_id($menu_id,$item,$args,$depth){ if($depth==1){ $menu_id = str_replace('menu-item', 'sub', $menu_id); }elseif($depth ==2) { $menu_id = str_replace('menu-item', 'sub_san', $menu_id); }else{ $menu_id = str_replace('menu-item', 'youran', $menu_id); } $menu_id = $menu_id.' '.'youranzixue-'.$item->ID; $menu_id =''; return $menu_id; } add_filter('nav_menu_item_id', 'my_css_attributes_filter_id', 100, 4);
通过过滤钩子nav_menu_css_class 可以自由控制LI标签的class属性
function my_css_attributes_filter($class,$item,$args,$depth) { $no_clear=array( 'current-menu-item', 'current-post-ancestor', 'current-menu-ancestor', 'current-menu-parent', 'menu-item-has-children', 'home', ); $class = is_array($class) ? array_intersect($class, $no_clear) : ''; if(!is_array($class)){ $class = array(); } if($depth ==0) { array_push($class,'one'); }elseif($depth==1){ array_push($class,'two'); }elseif($depth ==2) { array_push($class,'three'); }else{ array_push($class,'ten'); } return $class; } add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 4);
通过nav_menu_submenu_css_class钩子,可以改变UL的class属性。
add_filter('nav_menu_submenu_css_class', 'my_css_attributes_filter_ul', 100, 3); function my_css_attributes_filter_ul($class,$args,$depth) { if($depth ==0) { //array_push($class,'one'); $class = array('one'); }elseif($depth==1){ array_push($class,'two'); }elseif($depth ==2) { array_push($class,'three'); }else{ array_push($class,'ten'); } return $class; }
阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228