WordPress网站page页面调用与排序
page页面在WordPress中是一种特殊的文章页面,page页面通常被我们用于制作内容固定的页面,例如:企业网站里的关于我们,联系我们等等,有时我们也用page页面制作专题页面。
下面介绍一下WordPress网站page页面调用与排序方法。
调用网站所有page页面
<ul>
<?php wp_list_pages(); ?>
</ul>
调用指定ID页面下的子页面
<?php wp_list_pages('hide_empty=0&child_of=5&title_li='); ?>
除了上面的普通调用page页面之外,还可以使用下面的带参数代码达到特殊的要求。
隐藏或改变列表标题
给title_li参数传递一个零值或空值,可以隐藏由wp_list_pages生成的页面列表默认标题。
<?php wp_list_pages('title_li='); ?>
在下面这个例子中,列表中只包含编号为9,5,23的页面,标题内容被改为“Poetry”,格式为
<?php wp_list_pages('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
用exclude参数可隐藏列表中由wp_list_pages生成的若干页面。
<?php wp_list_pages('exclude=17,38' ); ?>
页面按条件排列
下面的例子将页面按管理栏中 Write > Page 定义的页面顺序进行排列。
<?php wp_list_pages('sort_column=menu_order'); ?>
如果希望将列表按页面顺序进行排列并将“Prose”作为列表标题(以h2格式)显示在侧边栏中,可将以下代码添加到sidebar.php文件中:
<?php wp_list_pages('sort_column=menu_order&title_li=<h2>' . __('Prose') . '</h2>' ); ?>
使用下列代码段,可显示出无标题并以页面顺序排列的页面:
<?php wp_list_pages('sort_column=menu_order&title_li='); ?>
下列代码显示出的页面将按发表日期进行排列,在页面列表项旁显示日期。
<?php wp_list_pages('sort_column=post_date&show_date=created'); ?>
显示列表页面
若仅希望在列表中显示特定页面,例如编号为35,7,26和13的页面,可使用include参数。
<?php wp_list_pages('include=7,13,26,35&title_li=<h2>' . __('Pages') . '</h2>' ); ?>
显示子页面
注意:即使没有子页面,HTML标签也是必要的(ul或ol)。用css设置列表时需要将这一点谨记在心。
<?php
wp_list_pages('title_li=&child_of='.$post->ID.'&show_date=modified
&date_format=$date_format'); ?>
以下代码仅在目前页面有子页面(将目前页面设为父级页面的页面)的情况下生成列表:
<?php
$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
<?php echo $children; ?>
<?php } ?>
将本代码放在侧边栏的widget区块后,代码将无法运行。
<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
<?php echo $children; ?>
<?php } ?>
本代码也可用在sidebar.php中,仅显示顶级页面。但浏览到包含子页面的页面时,仅显示其子页面。
浏览主页时在侧边栏显示所有顶级页面
浏览没有子页面的顶级页面时,显示所有顶级页面
浏览有子页面的顶级页面时,显示所有子页面及下一级页面
浏览子页面时,显示其父级页面下的所有子页面和下一级页面
<?php
$output = wp_list_pages('echo=0&depth=1&title_li=<h2>Top Level Pages </h2>' );
if (is_page( )) {
$page = $post->ID;
if ($post->post_parent) {
$page = $post->post_parent;
}
$children=wp_list_pages( 'echo=0&child_of=' . $page . '&title_li=' );
if ($children) {
$output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=<h2>Child Pages</h2>');
}
}
echo $output;
?>
默认参数
'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'=> '' );不删除父级/子级树