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

拆解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' ) ); ?>

我剛剛在header.php中找到的是menu的函數,這是在前端呼叫使用,當然也必須向後台註冊這個設定,才能互相呼應,通常我們都會將後台設定寫到functions.php中,因此我們再開啟twentyten的functions.php,找到第96行~98行,將此段程式碼也先複製到其它記事本。
register_nav_menus( array('primary' => __( 'Primary Navigation', 'twentyten' ),) );
![menu-03[4] menu-03[4]](https://test.steachs.com/images/uploads/b76083b25dd9_14BFB/menu034.png)
將佈景加入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' ) ); ?>

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

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