[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

  1. 總而言之言而總之

    選單列

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

    改完後卻便 60、70

    阿湯說:

    那應該跟你的css有關係吧

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

    阿湯說:

    看不太懂………

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

    阿湯說:

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

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

    阿湯說:

    QQ…

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

    阿湯說:

    要看是什麼錯誤

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

    阿湯說:

    應該會有吧

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

    怎麼會這麼多=.=

    阿湯說:

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

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

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

    阿湯說:

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *