fbpx

[WP筆記]讓佈景支援WordPress 3.0的自定義Menu

升級Wordpress 3.0版本後,在預設的佈景使用了新增的『自定義Menu』的功能,原先在2.9版之前的網誌分頁函數只能顯示分頁項目,不能自定網址或是某個分類,只能使用其它外掛來達成或是自行編輯佈景檔案,土法鍊鋼寫進佈景,因此如果你已經升級到3.0的版本,也很想要使用這超方便實用的自定義Menu的功能,不必換佈景,只要自己動手做點小修改就可以囉,如果佈景不支援的話,在後台的選單項目上方會顯示未直接支援的字樣哦。

menu-01

拆解Wordpress 3.0預設佈景『twentyten』:

在開始修改之前你可能會覺得,每次新函數都要去官網看,偏偏又是一大堆看不懂的英文字,別擔心,這一次呀,丫湯帶著你將3.0預設佈景『twentyten』拆解出來使用,而其實拆解佈景也是學習的方式之一,拆的愈多、看的愈多,你的運用方式就愈多,往後自己在製作佈景時也就能有更多的巧思運用。

利用NotePad++開啟WP3.0預設佈景『twentyten』中的header.php,找到第73行,這就是在WP 3.0新的Menu函數,請先將73行整行複製貼到其它記事本上。

<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

menu-02




我剛剛在header.php中找到的是menu的函數,這是在前端呼叫使用,當然也必須向後台註冊這個設定,才能互相呼應,通常我們都會將後台設定寫到functions.php中,因此我們再開啟twentyten的functions.php,找到第96行~98行,將此段程式碼也先複製到其它記事本。

register_nav_menus( array('primary' => __( 'Primary Navigation', 'twentyten' ),) );

menu-03[4]

將佈景加入Wordpress 3.0的自定義Menu函數

大部份的佈景menu都會寫在header.php中,因此先開啟你的佈景header.php檔案,找到<?php wp_list_pages('title_li='); ?>之類的函數,將此函數替換為我們剛從WP 3.0預設佈景twentyten的header.php取出的函數,整行取代即可。

<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

menu-04

另外我們再把第2次從WP3.0預設佈景的functions.php檔案裡取出的程式碼加入到目前的佈景,開啟你佈景的functions.php,將第2次儲存的程式碼插入在最上方,並在前一行插入<?php,然後再後方插入?>,整體程式碼如下:

<?php

 

register_nav_menus( array(

 

'primary' => __( 'Primary Navigation', 'twentyten' ),

 

) );

 

?>

menu-05

再回到後台的選單來看,原本未支援的字樣不見囉,馬上就可以來自定menu看看,是否有正常運作囉,當然如果你覺得使用原本顯示網誌分頁就好,那麼在後台的選單可以不作任何設定,這樣在網頁上的顯示會依照原先的網誌分頁顯示,加入此功能後是不是變的更方便了呢?menu-06

你可能對這些內容也有興趣

作者:阿湯

對電腦 & 網路資訊充滿興趣與熱情、瘋了似的每日堅持發文,「阿湯」這個名字是由湯姆克魯斯而來的,雖然我沒有他帥氣,也不會演電影,但我會寫文章....

更多關於的文章》

12 個留言

  1. 阿肥表示:

    應該沒啥問題吧@@
    選單CSS:
    http://wocl.tw/1.txt

    應該沒啥問題吧@@
    請阿湯哥指導︿︿

    阿湯說:

    這部份就自行研究修改囉

  2. 阿肥表示:

    總而言之言而總之

    選單列

    我原本寫的選單列 大概 高度 40px

    改完後卻便 60、70

    阿湯說:

    那應該跟你的css有關係吧

  3. 阿肥表示:

    我改玩後,為什麼選單空了一行
    有點像這樣:
    首頁|xxxx|XXXXX
    改玩後
    (這是多的一行)
    首頁|xxxx|XXXXX

    阿湯說:

    看不太懂………

  4. 羅先生表示:

    請問裝完主題之後首頁能顯示文章內容,但是上傳的圖片都沒顯示出來需點進文章裏才能看到,要修改哪個文件才能改善能否提示下?
    感謝

    阿湯說:

    要看你佈景吧~還有不太懂你的意思~

  5. kingili表示:

    您好,
    就出現”Internet Explorer 無法顯示網頁”
    重整之後又回到儲存前的狀態
    一直這樣無限循環 儲存…還原…儲存….還原….
    一開始都沒問題
    但加到80筆之後就不能存了

    阿湯說:

    QQ…

  6. kingili表示:

    您好,
    請問”自定義Menu”有限定內容數嗎?
    因為我裝了”JQuery Accordion Menu Widget”的外掛
    需要用到”自定義Menu”
    但我的選單內容有100多項
    結果儲存時都會發生錯誤ˊˋ

    阿湯說:

    要看是什麼錯誤

  7. toppy368表示:

    我用Notepad開啟header.php搜尋這串指令,怎麼找不到這一行,就算將關鍵字猜得只剩下title_li也一樣找不到,是1.1 版的內容改變了嗎?怎麼找不到呢?

    阿湯說:

    應該會有吧

  8. 仰天長笑表示:

    不用貼在記事本…
    阿湯~你已經貼出來了=]

    阿湯說:

    你們也要養成自己動手的習慣呀…

  9. K桑表示:

    不知道大家都說少~~
    我的有460多MB@@

    怎麼會這麼多=.=

    阿湯說:

    打開來看看就知了。你可以先備份起來然後刪掉…

  10. K桑表示:

    感謝阿湯大的詳解~
    想順便問一下!

    在伺服器上WP資料夾裡面會生成一個error_log檔案
    這個檔案究竟能不能刪
    因為這檔案幾乎把空間佔滿@@

    阿湯說:

    錯誤記錄檔可以刪,但這個檔案應該不至於會有多大吧…

  11. 表示:

    沙發位置好學習~~

    阿湯說:

    我這邊留言沒有沙發的哦,愈早留沉愈快..@@

  12. 阿棠表示:

    阿湯,加油啊!
    期待佈景系列的完本!

    阿湯說:

    可能還很久..

發表留言 »

姓名(*)
信箱(*)