register_nav_menus()(注冊菜單)
register_nav_menus() 函數用來注冊一個菜單,菜單指的是 WordPress 3.0+ 的菜單管理器,注冊之後用戶就可以在菜單管理器裡拖動生成導航菜單了。
用法
register_nav_menus( $locations );
參數
$locations
(數組)(必須)要注冊的菜單,鍵值為菜單 ID,鍵名為菜單名稱,可以一次創建多個。
默認值:None
返回值
該函數無返回值。
例子
/** *建立菜單 *http://www.endskin.com/register_nav_menus/ */ function Bing_register_nav_menus(){ register_nav_menus( array( 'header_menu' => __( '頂部菜單', 'Bing' ), 'footer_menu' => __( '頁腳菜單', 'Bing' ) )); } add_action( 'init', 'Bing_register_nav_menus' );
其它
該函數位於:wp-includes/nav-menu.php
wp_nav_menu()(菜單調用)
下面就來說一下怎麼調用用戶添加好後的菜單。
調用菜單主要使用 wp_nav_menu() 函數,wp_nav_menu() 函數的參數比較多,所以功能非常強大,這裡會一個一個的講解。
用法
wp_nav_menu( $args );
參數
參數只有一個 $args,但這是一個數組,通過給數組添加參數,可以定制更多細節,下邊是默認值:
$defaults = array( 'theme_location' => '', 'menu' => '', 'container' => 'div', 'container_class' => '', 'container_id' => '', 'menu_class' => 'menu', 'menu_id' => '', 'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 'depth' => 0, 'walker' => '' ); wp_nav_menu( $defaults );
詳解:
theme_locaton
(字符串)(可選)要調用的菜單的名字,比如 header_menu,如果沒指定,則默認顯示第一個注冊的菜單。
默認值:None
menu
(字符串)(可選)使用導航菜單的名稱調用菜單,可以是 ID、別名和名字(按順序匹配)。
默認值:None
container
(字符串)(可選)導航菜單的容器類型,只支持 div 和 nav 標簽,如果是其它值,ul 父節點的標簽將不會顯示。也可以設置成 False 去掉 ul 父節點。
默認值:div
container_class
(字符串)(可選)ul 父節點的 class 屬性。
默認值:menu-{menu slug}-container
container_id
(字符串)(可選)ul 父節點的 id 屬性。
默認值:None
menu_class
(字符串)(可選)ul 節點的 class 屬性。
默認值:None
menu_id
(字符串)(可選)ul 節點的 id 屬性。
默認值:菜單別名
echo
(布爾)(可選)返回導航菜單的 Html 代碼還是直接打印輸出,如果你想把導航菜單代碼存到變量裡請設置成 False.
默認值:True(直接打印輸出)
fallback_cb
(回調函數)(可選)後台沒有設置此菜單時默認顯示的內容。
默認值:wp_page_menu
before
(字符串)(可選)顯示在每個菜單鏈接前的文本。
默認值:None
after
(字符串)(可選)顯示在每個菜單鏈接後的文本。
默認值:None
link_before
(字符串)(可選)顯示在每個菜單鏈接文本前的文本。
默認值:None
link_after
(字符串)(可選)顯示在每個菜單鏈接文本後的文本。
默認值:None
items_wrap
(字符串)(可選)替換 ul 的 class 屬性。
默認值:None
depth
(整形)(可選)
顯示菜單的深度,當數值為 0 時顯示所有深度的菜單。
默認值:0
walker
(對象)(可選)菜單的結構對象。
默認值:new Walker_Nav_Menu
例子
<?php wp_nav_menu( array( 'theme_location' => 'header_menu', 'container' => false, 'items_wrap' => '<ul id="topmenu">%3$s</ul>', 'fallback_cb' => 'Bing_menu_null_fallback' ) ); ?>
其它
此函數位於:wp-includes/nav-menu-template.php