WordPress 3.0 Menus|自定義選單

這幾天WordPress 3.0正式推出了,增加了不少新功能其中一個便是今天要介紹的Custom Menus(自定義選單)功能,透過這項功能可以直接在後台靈活對導航選單進行編輯,但這款新功能要主題有支援才能對位於頁首的導航列進行後台編輯,不然就只能使用在widgets上,所幸整個程式碼改寫上並不會很傷大腦(除非你家使用的主題很特殊…),話不多說馬上開始改寫囉~~

首先開啟主題目錄下的functions.php
在裡面最後一行的?>之前一行加入以下程式碼:

// WordPress 3.0 Menus Support
register_nav_menus( array(
	'primary' => __( 'Primary Navigation'),
) );

 

然後開啟header.php
由於每個主題對於導航列的寫法不盡相同,所以建議模糊尋找,主要關鍵字是wp_list_pages
以我家arthemia為例,找到是像如下這樣:

		

 

然後替換為如下程式碼:

 'page-bar', 'menu_class' => 'left clearfloat', 'theme_location' => 'primary') ); ?>

 

但是在替換前先注意看wp_nav_menu這一行,menu_id 的數值跟原本的 ul 標籤的 id 數值是一樣的,menu_class則是要跟ul 標籤的 class 數值一樣,如果你的是 ul 標籤有其中一項沒設定的話可以直接拿掉沒有設定的部份。

這樣程式碼的改寫就完畢囉,再來是前往後台的 [ 外觀 ] -> [ 選單 ],開始進行導航選單的編輯。

選單名稱建議還是以英數字為主別帶有中文字,如果要某選單位於某主選單的下拉式清單之中的話,對該區塊往後拖移就可以了,設定完記得按儲存選單,然後在佈景主題位置選擇剛建立好的選單儲存就完成囉。

如果想更了解Menus的wp_nav_menu函數的話可以至官網的 Function Reference/wp nav menu 逛逛,因為本篇文章僅說明如何與現行的主題導航列相容~~

0 0 votes
Article Rating
Subscribe
Notify of
21 Comments
Inline Feedbacks
View all comments
aetuts
14 years ago

感谢分享心得,待得升级之后马上试试

falv
14 years ago

你好,请问你用的是什么主题?

bunny
bunny
14 years ago

版主你好
我是用wordpress 3.0
但想把menu改成下拉式的選單是水平的,不曉得要怎麼改?
像yahoo台灣裡面那種menu

bunny
bunny
14 years ago

哈囉~版主,我是用3.0內定的theme- twentyten,版主可否給我一些協助~
感謝感謝~

Jie
Jie
14 years ago

Hi 版主,

謝謝版主你提供支援3.0 Menu的改法,
已經改好而且也正常的運作了, 謝謝.

YEH317
YEH317
14 years ago

版主你好,請問一下你這主題右邊的「最新、迴響、熱門…」那個是要從那裡去改成中文顯示呢?

YEH317
YEH317
14 years ago

感謝大大的中文化,雖然有些還是英文,不過已經看起來不錯囉!
另外,想再請教大大一下,若是從其它地方轉移過來的文章,文章內容的影片寬度(YOUTUBE)和照片,都會超過文章的寬度的,不知道是否有什麼外掛可以統一修正這個問題?另外,有沒有什麼方法可以一起改變這幾百篇文章的文字大小呢?

YEH317
YEH317
14 years ago

哇…看樣子這可是個大工程了…因為YOUTUBE的影片大小都不太一樣大小…

圖片大小的限制…如果沒方便的方式來轉…那可就真的直接投降好了!哈哈

wukungfu
12 years ago

Mr. 夫 大大你好:

我想詢問下拉式選單的問題。
希望你指點迷津~^^

目前我的functions.php是這樣的內容:
==========
add_action(‘admin_menu’, array(‘SOptions’, ‘add’));
register_nav_menus( array(
‘scov4pri’ => __( ‘Primary Navigation’, ‘Sco V4.0’ ),
) );
==========

在header.php有這樣的內容:
==========

‘menu-header’, ‘theme_location’ => ‘scov4pri’ ) ); ?>
==========

在 外觀>選單 上也可以自由排列:
http://i483.photobucket.com/albums/rr199/b81100492/-1-5.jpg

可以順利出現在頁面上,不過卻沒有出現下拉式的子頁面。(只有最上層出現)

用CHROME的檢查元素來看原碼,
發現都有子頁面的存在,只是沒秀出來,
請問我下一步該如何解決?

感恩

wukungfu
12 years ago

不好意思~直接貼語法好像無法完整顯示。
附上圖片檔:

functions.php:
http://i483.photobucket.com/albums/rr199/b81100492/fun-1.jpg

header.php:
http://i483.photobucket.com/albums/rr199/b81100492/header.jpg

wukungfu
12 years ago

我使用的是”就是教不落”大大釋出的主題:http://steachs.com/archives/1620