當(dāng)前位置:首頁>WordPress建站>基礎(chǔ)教程>移除 WordPress 菜單輸出的多余的CSS選擇器id或class

移除 WordPress 菜單輸出的多余的CSS選擇器id或class

現(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)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號 WPDAXUE
基礎(chǔ)教程

WordPress待辦事項插件:Cleverness To-Do List

2013-7-9 8:30:00

基礎(chǔ)教程

如何修改WordPress自帶標(biāo)簽云小工具的顯示參數(shù)

2013-7-10 7:56:00

17 條回復(fù) A文章作者 M管理員
  1. 逆海而行

    挖墳,問下怎么保留menu-item-1、menu-item-2 這種帶分類ID的class

  2. 以前wordpress 設(shè)置菜單的時候可以自己添加CSS類可選,現(xiàn)在點擊菜單的顯示選項沒有反應(yīng),這個是BUG還是什么原因啊。

  3. 這樣把后臺自定義也都刪掉了。不知道怎么添加上自定義類!

    • 請注意看倒數(shù)第二段代碼的第9行,你可以保留一些你需要的class,比如 ‘current-menu-item’,’current-post-ancestor’,’current-menu-ancestor’,’current-menu-parent’

      自己修改下代碼即可

  4. 我現(xiàn)在把樣式都移除了,請問怎么添加一個class

    • 請注意看倒數(shù)第二段代碼的第9行,你可以保留一些你需要的class,比如 ‘current-menu-item’,’current-post-ancestor’,’current-menu-ancestor’,’current-menu-parent’

      自己修改代碼即可

?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

水富县| 伊吾县| 天全县| 柳州市| 五峰| 井陉县| 昌黎县| 波密县| 义乌市| 岳西县| 新宾| 兴国县| 桐梓县| 宁德市| 黄平县| 海林市| 炉霍县| 育儿| 和田市| 伊吾县| 鄯善县| 丽江市| 平乐县| 遂溪县| 彝良县| 隆昌县| 安西县| 孟连| 葫芦岛市| 江门市| 延川县| 徐汇区| 新沂市| 甘德县| 芷江| 通江县| 平阳县| 胶州市| 莲花县| 丽水市| 象山县|