函数介绍

<?php wp_list_pages('arguments'); ?>

函数参数

$defaults = array(     
    'depth'       => 0,   显示所有页面和子页面(无深度限制)
    'show_date'   => '',     不显示创建日期
    'date_format' => get_option('date_format'),     
    'child_of'    => 0,      子页面无限制
    'exclude'     => '',    不删除任何页面
    'title_li'    => __('Pages'),   页面列表的标题为“Pages(页面)”
    'echo'        => 1,     回显(显示)结果
    'authors'     => '',      不局限于特定作者
    'sort_column' => 'menu_order, post_title',  先按页面顺序再按页面标题排序
    'link_before' => '',     
    'link_after'  => '',     
    'exclude_tree'=> '' );不删除父级/子级树
sort_order (字符)

更改页面列表的排列顺序(升序或降序)。默认为升序。可能的值为:

‘asc’ ——按从低到高顺序排列(默认)
‘desc’ —— 按从高到低顺序排列
exclude (字符)

定义一列页面编号并用逗号隔开,将其从已有列表中删除(例如:’exclude=3,7,1′)。无默认值。

exclude_tree (整数)

与’child_of’相反,’exclude_tree’从结果中移除已知编号的所有子页面。也可用于隐藏已知页面的所有子页面。该参数还可联合’child_of’ 的值以隐藏孙页面。在2.7版本中该参数可用。

include (字符)

仅包含get_pages生成的特定页面列表。include参数与exclude同样用逗号将页面编号隔开。无默认值。

depth(整数)

该参数决定wp_list_pages生成的列表中包含的页面层次级数。默认值为0(显示子页面内的所有页面)。

0 — 以层级方式(缩进)显示所有页面和子页面(默认)
-1 — 以平级方式(不缩进)显示子页面中的页面
1 — 仅显示最上层页面
2 — 该值(或更大值)表示需要显示页面内部的层级数
child_of (整数)

仅显示单个页面的子页面;值为默认编号。默认值为0(显示所有页面)。注意child_of参数不仅获取直系子页面,也会从已知编号中获取“孙页面”。默认值为0(显示所有页面)。

show_data(字符)

在每篇页面旁显示创建日期或最新修改日期。默认值为空值(不显示日期)。可用的值包括:

‘ ‘ — 不显示日期(默认)
‘modified’ — 显示最新修改日期
‘xxx’ — 任何非’modified’值都将显示页面最初创建的日期(post_date)。参看上文中的示例。
date_format(字符)

该参数对show_date参数生成的页面日期格式(”l, F j, Y”)进行设置。默认格式为WordPress选项设定的日期格式。参见日期和时间设置以及php网站上的页面日期格式。

title_li (字符)

设置页面列表标题的内容与样式。默认值为“_(’页面’)”,显示结果为“页面”(_(”)用于本地定位)。若传递值为零或为空(”),则不显示标题,列表也不会被ul标签围绕。参见标题示例。

echo (布尔型)

触发显示所生成的链接列表,或将列表按HTML文本格式返回供PHP使用。默认值为1(显示生成的列表项)。可能的值包括:

1 (true) — 默认
0(false)
hierarchical(布尔型)
在上级页面列表下以缩进方式显示下级页面。默认值为true(在父级列表项下显示其子页面)。可能的值有:

1(true)——默认
0(false)
meta_key(字符)
仅包含含有该自定义字段关键字的页面(与meta_value字段联合使用)。

meta_value(字符)
仅包含含有该自定义字段值的页面(与meta_key字段联合使用)。

link_before(字符)

设置标签中文字链接前的文本或html代码。(适用于2.7.0或更新版本)

link_after(字符)
设置标签中文字链接后的文本或html代码。(适用于2.7.0或更新版本)

【实例】

隐藏或改变列表标题

给title_li参数传递一个零值或空值,可以隐藏由wp_list_pages生成的页面列表默认标题。下面的代码可显示所述效果:

<ul> 
<?php wp_list_pages('title_li='); ?> 
</ul>

在下面这个例子中,列表中只包含编号为9,5,23的页面,标题内容被改为“Poetry”,格式为:

<ul>   
  <?php wp_list_pages('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?> 
</ul>

将页面按页面顺序排列

下面的例子将页面按管理栏中 Write > Page 定义的页面顺序进行排列。

<ul>   
  <?php wp_list_pages('sort_column=menu_order'); ?> 
</ul>

如果希望将列表按页面顺序进行排列并将“Prose”作为列表标题(以h2格式)显示在侧边栏中,可将以下代码添加到sidebar.php文件中:

<ul>   
  <?php wp_list_pages('sort_column=menu_order&title_li=<h2>' . __('Prose') . '</h2>' ); ?> 
</ul>

使用下列代码段,可显示出无标题并以页面顺序排列的页面:

<ul>   
  <?php wp_list_pages('sort_column=menu_order&title_li='); ?> 
</ul>

将页面按发表日期排列

下列代码显示出的页面将按发表日期进行排列,在页面列表项旁显示日期。

<ul>   
  <?php wp_list_pages('sort_column=post_date&show_date=created'); ?> 
</ul>

从列表中排除页面

用exclude参数可隐藏列表中由wp_list_pages生成的若干页面。

<ul>   
  <?php wp_list_pages('exclude=17,38' ); ?> 
</ul>

【返回的值】

(数组)

以页面URI数组作为第一元素,以附件URL作为第二元素。

【源文件】

wp_list_pages() 位于 wp-includes/rewrite.php.