如何在父页面显示子页标题并分页

按照以下方法实现了父页显示子页标题,但是不会分页
在开发制作特殊的wordpress主题时,可能会有调用当前Page页面的page子页面标题、内容、链接、特色图像等内容的需要,对于这种需求,可能通过get_pages函数获取所属子页面信息,然后使用foreach循环输出。

实现方法:

复制一份主题下的page.php文件,重命名为template-parent.php,编辑template-parent.php文件,在<?php下面添加:
/*
Template Name:父页面
*/
然后在要显示子页面内容对应的模板位置添加以下代码(一般是loop部分):
<?php 
$pages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID);
foreach($pages as $page){
$content = $page->post_content;
?>
<div>
特色图像:<?php echo get_the_post_thumbnail($page->ID); ?>
输出标题:<?php echo $page->post_title; ?>
输出内容:<?php echo $content; ?>
输出链接<a href="<?php echo get_page_link($page->ID); ?>">阅读全文</a>
</div>
<?php } ?>
在后台——页面中编辑父页面,选择模板“父页面”,然后更新。
 
 
 
以下代码为解决问题后的代码,由于无权限评论,就把代码放在问题里吧
<?php
$pages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID);//获取全部的子页
$comments_per_page = 10;//每页数量
$paged = array_chunk($pages,$comments_per_page);//将总数按照每页数量分组
$page_num = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;//获取当前页码
$total = 0;//总页数
foreach($pages as $a){
$total++;
}
foreach($paged[$page_num-1] as $b){
?>
<div><h3>
<a href="<?php echo get_page_link($b->ID); ?>"><?php echo $b->post_title;?></a>
<!--<h6><?php echo $b->post_date;?></h6>-->
</h3>
</div>
<?php } ?>
<h4>
<?php
echo paginate_links( array(
'base' => add_query_arg( 'cpage', '%#%' ),
'format' => '',
'prev_text' => __('&laquo;'),
'next_text' => __('&raquo;'),
'total' => ceil($total / $comments_per_page),
'current' => $page_num
));
?>
</h4>
已邀请:

要回复问题请先登录注册