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

WordPress函式wp_page_menu詳解

說明

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

WordPress教程

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

這個類被新增到選單項中對應的當前顯示的靜態頁面的祖先頁面