WordPress函數wp_page_menu詳解
說明
該標簽顯示帶有鏈接的WordPress頁面列表,並且可以選擇將 Home(主頁)自動顯示為列表中的一員。該標簽是自定義側邊欄和標題欄的好幫手,同時還可以用在其它模板中。
用法
<?php wp_page_menu( $args ); ?>
默認用法
<?php $args = array( ‘depth‘ => 0, ‘sort_column‘ => ‘menu_order, post_title‘, ‘menu_class‘ => ‘menu‘, ‘include‘ => ‘‘, ‘exclude‘ => ‘‘, ‘echo‘ => true, ‘show_home‘ => false, ‘link_before‘ => ‘‘, ‘link_after‘ => ‘‘ ); ?>
默認情況下的顯示狀態:
按頁面菜單順序和標題進行排列
DIV類為’menu’
回應結果(顯示)
無link_before或link_after文本
不將“Home”添加到頁面列表中
註意:用 <ul>與</ul>標簽包圍輸出結果
參數
depth
(整數)這個參數用來控制 wp_list_pages 生成的頁面列表的層次深度。默認值為 0 (顯示所有頁面,包括所有子頁面)
0(默認)使用嵌套列表顯示所有層次的頁面
-1 – 使用單一的平面列表顯示所有層次的頁面
1 – 只顯示頂級頁面
2,3… – 顯示置頂的層次深度的頁面
sort_column
(字符串)按頁面標題的字母順序排列頁面列表。默認設置為sort by menu order (按菜單順序排列)與alphabetically by page title(按頁面標題的字母順序排列)。sort_column參數可被WordPress數據庫中的wp_post表中任何字段的描述符用來排列頁面列表。下面是一些可用值。
‘post_title’ —— 按標題的字母順序排列頁面
‘menu_order’ ——按頁面順序排列頁面。註意頁面順序與頁面ID之間的區別。頁面ID是WordPress為頁面/文章指定的一個唯一數字。而頁面順序則可由用於在管理面板(如儀表盤>頁面>編輯頁面)中設定。
‘post_date’ ——按發表日期排列頁面
‘post_modified’ —— 按最後修改日期排列頁面
‘ID’ ——按頁面ID排列
‘post_author’ ——按頁面作者的ID排列頁面
‘post_name’ —— 按頁面別名的字母順序排列頁面
menu_class
(字符串)用以顯示列表的DIV類。默認值為menu。
include
(字符串)只顯示符合所求ID的頁面。如 wp_page_menu(‘include=2,14’) 只會列出ID為2和14的頁面。
exclude
(字符串)該參數決定從列表ID列表中排除某些頁面(如 ‘exclude=3,7,31’)。無默認值。參見下文中從列表中排除若幹頁面的示例。
exclude_tree
(字符串)確定一列將要被排除的父頁面ID,各ID用逗號隔開。可用該參數刪除某個父頁面及其所有下屬頁面。如’exclude_tree=5’將會刪除ID為5的父頁面與該頁面的所有子頁面。(該參數引入於WP 2.7,在WP 2.8.1中使用該參數可能會有問題——詳情請見bug報告。)
echo
(布爾型)顯示生成的頁面鏈接列表,或將列表作為HTML文本字符串返回以用在PHP中。默認值為1(顯示生成的列表項)。有效值包括:
0(false)
1 (true)——默認值
show_home
(布爾型)將“Home”作為頁面列表的第一個列表項。將管理面板>設置>常規中填寫的博客地址(URL)作為這裏Home的URL鏈接。默認值為0(不在生成的列表中加入“Home”項)。有效值包括:
0(false)——默認值
1 (true)
<任何內容> —— 用這裏的內容代替“Home”(show_home仍然為true)
link_before
(字符串)設置<a>標簽中鏈接文本前的文字或html。
link_after
(字符串)設置<a>標簽中鏈接文本後的文字或html。
返回值
(字符串)如果“echo”參數被設置為false,輸出菜單的HTML代碼
示例
將主頁(home)作為一個頁面
下面這個例子將“Home”作為頁面列表的第一個列表項。此外,所有頁面名稱都被div元素圍繞,不顯示ID為5,9,23的頁面,以頁面順序排列頁面。列表前有標題“Page Menu”字樣。
<h2>Page Menu</h2> <?php wp_page_menu(‘show_home=1&exclude=5,9,23&menu_class=page-navi&sort_column=menu_order‘); ?>
將主頁作為一個頁面,並命名為Blog
下面這個例子將“Blog”(“Home”主頁的替代品)作為頁面列表的第一個列表項:
<?php wp_page_menu( array( ‘show_home‘ => ‘Blog‘, ‘sort_column‘ => ‘menu_order‘ ) ); ?>
只在頁面列表中顯示主頁
下面這個示例在頁面列表中只顯示了一個主頁(Home)鏈接。註意include=99999’引用了一個實際上並不存在的頁面ID,因此列表中只會顯示主頁(Home)鏈接。
<?php wp_page_menu(‘show_home=1&include=9999‘); ?>
菜單項的CSS類
下面的CSS類是 wp_page_menu() 生成的菜單輸出的,例如HTML <li>標簽
所有菜單項(Menu Items)
.page_item
這個類被添加到菜單項中對應的靜態頁面
.page-item-$ID
這個類被添加到菜單項中對應的靜態頁面,$ID 就是這個頁面的ID
當前頁面菜單項
.current_page_item
這個類被添加到菜單項中對應的當前顯示的靜態頁面
當前頁面的父級菜單項
.current_page_parent
這個類被添加到菜單項中對應的當前顯示的靜態頁面的父級頁面
當前頁面的祖先菜單項
.current_page_ancestor
這個類被添加到菜單項中對應的當前顯示的靜態頁面的祖先頁面
?
WordPress函數wp_page_menu詳解