現(xiàn)在大多數(shù)的WordPress主題都使用 wp_nav_menu() 來添加菜單,這個函數(shù)默認(rèn)會輸出很多CSS選擇器,比如下面的代碼:
<li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-6"><a href="http://www.ydqwiac.cn/">大學(xué)首頁</a></li>
<li id="menu-item-13" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-13"><a href="http://www.ydqwiac.cn/news">WordPress資訊</a></li>
<li id="menu-item-8" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8"><a href="http://www.ydqwiac.cn/themes">WordPress主題</a></li>
看著就有些頭疼,如果你想移除所有的css選擇器,可以將下面的代碼添加到主題的 functions.php :
/**
* 移除菜單的多余CSS選擇器
* From http://www.ydqwiac.cn/remove-wordpress-nav-classes.html
*/
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() : '';
}
輸出效果如下,夠精簡了吧:
<li><a href="http://www.ydqwiac.cn/">大學(xué)首頁</a></li>
<li><a href="http://www.ydqwiac.cn/news">WordPress資訊</a></li>
<li><a href="http://www.ydqwiac.cn/themes">WordPress主題</a></li>
不過,你可能要考慮到定義當(dāng)前菜單的某些樣式,比如高亮顯示當(dāng)前菜單,那你就需要保留一些CSS選擇器,才能定義當(dāng)前菜單。常用的當(dāng)前菜單的選擇器有以下4個:
- current-post-ancestor
- current-menu-ancestor
- current-menu-item
- current-menu-parent
所以我們只要不過濾它們即可,可以參考下面的代碼:
如果你想保留更多CSS類,可以修改以下代碼的第 9 行的數(shù)組內(nèi)容。
/**
* 移除菜單的多余CSS選擇器
* From http://www.ydqwiac.cn/remove-wordpress-nav-classes.html
*/
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','current-post-ancestor','current-menu-ancestor','current-menu-parent')) : '';
}
這樣一來,如果當(dāng)前訪問的是WordPress大學(xué)的首頁,輸出的代碼為:
<li class="current-menu-item"><a href="http://www.ydqwiac.cn/">大學(xué)首頁</a></li>
<li><a href="http://www.ydqwiac.cn/news">WordPress資訊</a></li>
<li><a href="http://www.ydqwiac.cn/themes">WordPress主題</a></li>
保留了 class="current-menu-item" ,對這個類添加樣式即可。
聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。





挖墳,問下怎么保留menu-item-1、menu-item-2 這種帶分類ID的class
以前wordpress 設(shè)置菜單的時候可以自己添加CSS類可選,現(xiàn)在點擊菜單的顯示選項沒有反應(yīng),這個是BUG還是什么原因啊。
這樣把后臺自定義也都刪掉了。不知道怎么添加上自定義類!
請注意看倒數(shù)第二段代碼的第9行,你可以保留一些你需要的class,比如 ‘current-menu-item’,’current-post-ancestor’,’current-menu-ancestor’,’current-menu-parent’
自己修改下代碼即可
我現(xiàn)在把樣式都移除了,請問怎么添加一個class
請注意看倒數(shù)第二段代碼的第9行,你可以保留一些你需要的class,比如 ‘current-menu-item’,’current-post-ancestor’,’current-menu-ancestor’,’current-menu-parent’
自己修改代碼即可