1. 程式人生 > >WordPress函數wp_page_menu詳解

WordPress函數wp_page_menu詳解

pos eight 編輯 的區別 情況 name 包括 res lis

說明

該標簽顯示帶有鏈接的WordPress頁面列表,並且可以選擇將 Home(主頁)自動顯示為列表中的一員。該標簽是自定義側邊欄和標題欄的好幫手,同時還可以用在其它模板中。

技術分享圖片

WordPress教程

用法

 <?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詳解