升級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

Categorized in:

WordPress,

Last Update: 2010 年 08 月 06 日