wordpress制作自定義菜單的方法
發(fā)布時(shí)間:2013-11-10 16:09:34 作者:佚名
我要評(píng)論

本文介紹了wordpress中自定義菜單制作詳細(xì)教程
要想實(shí)現(xiàn)自定義菜單,需要用到的函數(shù)是wp_nav_menu(),給這個(gè)函數(shù)傳遞一些參數(shù)就可以輸出自定義菜單菜單,下面簡(jiǎn)單講講如何使用使用這個(gè)函數(shù)。
首先,在主題目錄下的functions.php的 <?php ….. ?> 之間,添加以下菜單注冊(cè)代碼,這樣你就可以在主題文件中使用wp_nav_menu函數(shù)了:
// This theme uses wp_nav_menu() in one location.
register_nav_menus();
接著我們?cè)谥黝}的導(dǎo)航欄處調(diào)用wp_nav_menu(),即可輸出導(dǎo)航菜單HTML代碼:
<?php
// 列出頂部導(dǎo)航菜單,菜單名稱(chēng)為mymenu,只列出一級(jí)菜單
wp_nav_menu( array( 'menu' => 'mymenu', 'depth' => 1) );
?>
以上代碼輸出的HTML代碼形式如下:
<div class="menu-menu-container">
<ul class="menu" id="menu-menu">
<li class="..." id="menu-item-1"><a href="...">首頁(yè)</a></li>
<li class="..." id="menu-item-2"><a href="...">分類(lèi)A</a></li>
...
</ul>
</div>
這里列出的 li 項(xiàng)為你在后臺(tái) – 外觀 – 菜單添加的欄目,如果你還沒(méi)有在后臺(tái)添加菜單,導(dǎo)航欄將列出所有頁(yè)面。另外,wp_nav_menu會(huì)為每個(gè) li 添加class,不同的class標(biāo)記這個(gè)菜單項(xiàng)的屬性,如當(dāng)前打開(kāi)的是某個(gè)文章頁(yè)面,分類(lèi)A 就是這篇文章所屬的分類(lèi),那么 分類(lèi)A 所在的 li 將會(huì)如下代碼所示:
<li class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent menu-item-5" id="menu-item-2"><a href="...">分類(lèi)A</a></li>
如果是在首頁(yè),那么首頁(yè)的菜單項(xiàng)的 li 可能會(huì)如下所示:
<li class="menu-item menu-item-type-custom current-menu-item current_page_item menu-item-home menu-item-4" id="menu-item-1"><a href="..">首頁(yè)</a></li>
從這些class的名稱(chēng)就知道它們的作用,通過(guò)給這些class添加css屬性,可以達(dá)到如高亮當(dāng)前導(dǎo)航菜單的目的,如將當(dāng)前菜單鏈接定義成紅色:
.current-post-ancestor a, .current-menu-parent a, .current-menu-item a, .current_page_item a {
color: red;
}
好了,WordPress 3.0的自定義菜單的調(diào)用就是這么簡(jiǎn)單。wp_nav_menu還有很多參數(shù),如自定義 ul 節(jié)點(diǎn)、ul 父節(jié)點(diǎn)的id和class的參數(shù)等等,詳情可以參考文檔:官方文檔 | 中文文檔
使用分類(lèi)和頁(yè)面作為導(dǎo)航欄
在 WordPress 3.0 之前,大部分WordPress主題都是拿頁(yè)面作為導(dǎo)航欄的,導(dǎo)航中只能添加頁(yè)面,顯得不夠自由。我剛用WordPress 2.7的時(shí)候,就為此問(wèn)題煩惱,最后翻了文檔,查了一些資料,實(shí)現(xiàn)了在導(dǎo)航中添加分類(lèi),詳情請(qǐng)看我之前寫(xiě)的文章:WordPress 分類(lèi)做導(dǎo)航欄,并高亮顯示
非常規(guī)導(dǎo)航欄的制作
以上提到的兩種方式,都是使用WordPress自帶的函數(shù)來(lái)實(shí)現(xiàn),他們輸入的HTML代碼也都是限定好的,就是使用 ul li 的形式來(lái)構(gòu)建菜單列表:如:
<ul>
<li class="..">...</li>
<li class="..">...</li>
</ul>
如果主題的前端代碼不是你寫(xiě)的,而且導(dǎo)航欄的代碼寫(xiě)得很龜毛,這根本不是上面的WordPress標(biāo)準(zhǔn)的 ul 導(dǎo)航欄形式,如下面的代碼:
<dl>
<dt><strong>標(biāo)題</strong></dt>
<dd><a target="_blank" title="#" href="#">菜單A</a></dd>
<dd><a target="_blank" title="#" href="#">菜單B</a></dd>
</dl>
首先,在主題目錄下的functions.php的 <?php ….. ?> 之間,添加以下菜單注冊(cè)代碼,這樣你就可以在主題文件中使用wp_nav_menu函數(shù)了:
復(fù)制代碼
代碼如下:// This theme uses wp_nav_menu() in one location.
register_nav_menus();
接著我們?cè)谥黝}的導(dǎo)航欄處調(diào)用wp_nav_menu(),即可輸出導(dǎo)航菜單HTML代碼:
復(fù)制代碼
代碼如下:<?php
// 列出頂部導(dǎo)航菜單,菜單名稱(chēng)為mymenu,只列出一級(jí)菜單
wp_nav_menu( array( 'menu' => 'mymenu', 'depth' => 1) );
?>
以上代碼輸出的HTML代碼形式如下:
<div class="menu-menu-container">
<ul class="menu" id="menu-menu">
<li class="..." id="menu-item-1"><a href="...">首頁(yè)</a></li>
<li class="..." id="menu-item-2"><a href="...">分類(lèi)A</a></li>
...
</ul>
</div>
這里列出的 li 項(xiàng)為你在后臺(tái) – 外觀 – 菜單添加的欄目,如果你還沒(méi)有在后臺(tái)添加菜單,導(dǎo)航欄將列出所有頁(yè)面。另外,wp_nav_menu會(huì)為每個(gè) li 添加class,不同的class標(biāo)記這個(gè)菜單項(xiàng)的屬性,如當(dāng)前打開(kāi)的是某個(gè)文章頁(yè)面,分類(lèi)A 就是這篇文章所屬的分類(lèi),那么 分類(lèi)A 所在的 li 將會(huì)如下代碼所示:
復(fù)制代碼
代碼如下:<li class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent menu-item-5" id="menu-item-2"><a href="...">分類(lèi)A</a></li>
如果是在首頁(yè),那么首頁(yè)的菜單項(xiàng)的 li 可能會(huì)如下所示:
復(fù)制代碼
代碼如下:<li class="menu-item menu-item-type-custom current-menu-item current_page_item menu-item-home menu-item-4" id="menu-item-1"><a href="..">首頁(yè)</a></li>
從這些class的名稱(chēng)就知道它們的作用,通過(guò)給這些class添加css屬性,可以達(dá)到如高亮當(dāng)前導(dǎo)航菜單的目的,如將當(dāng)前菜單鏈接定義成紅色:
.current-post-ancestor a, .current-menu-parent a, .current-menu-item a, .current_page_item a {
color: red;
}
好了,WordPress 3.0的自定義菜單的調(diào)用就是這么簡(jiǎn)單。wp_nav_menu還有很多參數(shù),如自定義 ul 節(jié)點(diǎn)、ul 父節(jié)點(diǎn)的id和class的參數(shù)等等,詳情可以參考文檔:官方文檔 | 中文文檔
使用分類(lèi)和頁(yè)面作為導(dǎo)航欄
在 WordPress 3.0 之前,大部分WordPress主題都是拿頁(yè)面作為導(dǎo)航欄的,導(dǎo)航中只能添加頁(yè)面,顯得不夠自由。我剛用WordPress 2.7的時(shí)候,就為此問(wèn)題煩惱,最后翻了文檔,查了一些資料,實(shí)現(xiàn)了在導(dǎo)航中添加分類(lèi),詳情請(qǐng)看我之前寫(xiě)的文章:WordPress 分類(lèi)做導(dǎo)航欄,并高亮顯示
非常規(guī)導(dǎo)航欄的制作
以上提到的兩種方式,都是使用WordPress自帶的函數(shù)來(lái)實(shí)現(xiàn),他們輸入的HTML代碼也都是限定好的,就是使用 ul li 的形式來(lái)構(gòu)建菜單列表:如:
復(fù)制代碼
代碼如下:<ul>
<li class="..">...</li>
<li class="..">...</li>
</ul>
如果主題的前端代碼不是你寫(xiě)的,而且導(dǎo)航欄的代碼寫(xiě)得很龜毛,這根本不是上面的WordPress標(biāo)準(zhǔn)的 ul 導(dǎo)航欄形式,如下面的代碼:
復(fù)制代碼
代碼如下:<dl>
<dt><strong>標(biāo)題</strong></dt>
<dd><a target="_blank" title="#" href="#">菜單A</a></dd>
<dd><a target="_blank" title="#" href="#">菜單B</a></dd>
</dl>
相關(guān)文章
- wordpress3.4.1無(wú)法登錄后臺(tái)的解決方法,只需要簡(jiǎn)單的4個(gè)步驟2013-11-10
- wordpress建設(shè)網(wǎng)站:從買(mǎi)域名空間到安裝WP,遇到了一些問(wèn)題,這里總結(jié)幾個(gè)步驟提供大家參考2013-11-06
- 一款仿mujiazi官網(wǎng)改版前的wordpress主題,喜歡的朋友可以下載2013-11-01