使用 WP Comment Query 建立带分页功能的自定义评论列表
文 / @UTHEME
如何使用 WPCommentQuery 类建立带分页功能的自定义评论列表
WPCommentQuery 是 WordPress 用来查询评论的类,在本站之前的文章 WordPress 评论查询类 WPCommentQuery 参考文档 中,我介绍了 WPCommentQuery 类的详细参数,使用 WPCommentQuery 类,我们可以实现各种各样的评论查询,下面,我们来看一下怎么用 WPCommentQuery 类建立带分页功能的自定义评论列表。
首先,获取评论分页需要的数据
首先,我们需要获取评论分页所需要的数据,包括总评论数量、每页显示的评论数量、当前页数这三个数据。
$user = wizhi_get_current_user();
// 当前页码, 注意这里的查询参数,不能用 paged,会和文章的分页参数冲突
$paged = isset($_GET['cmpage']) ? $_GET['cmpage'] : 1;
// 总页数
$total = get_user_comments_count($user->ID);
// 每页显示的评论数量
$number = 6;
$offset = ($paged - 1) * $number;
// 评论查询类 WPCommentQuery 的参数
$args = [
'user_id' => $user->ID,
'number' => $number,
'offset' => $offset,
];
// 评论查询实例
$comments_query = new WP_Comment_Query($args);
$comments = $comments_query->comments;
// 当前获取的评论数据
$current_count = count($comments);
显示 WPCommentQuery 查询到的评论
也就是评论列表里面显示的评论内容,可以有评论作者头像、评论作者昵称等数据,因为作为示例使用,这里就不再输出详细的数据了,只输出评论内容作为演示。
if ($comments) {
foreach ($comments as $comment) {
echo $comment->comment_content;
}
}
根据查询数据显示分页链接
直接显示下一页链接
如果不需要数字分页的方式,可以直接显示下一页的链接,显示上一页链接的方式类似。
// 如果当前获取的评论评论数量和每页显示的评论数量相等,说明不是最后一页,显示下一页链接。
if ($number == $current_count) {
echo '<a class="button" href="?tab=reply&paged=' . ($paged+1). '">下一页</a>';
}
显示数字分页链接
如果需要显示上一页和下一页链接,直接使用 WordPress 的 paginate_links
函数即可,这个函数的使用在本站文章 WordPress 创建带分页功能的用户列表 中就有使用,在评论分页中的使用方法是类似的。
// 获取当前页面
$current_page = max(1, $paged);
$max_num_pages = intval($total / $number) + 1;
// 显示分页链接
echo paginate_links([
'base' => get_permalink($pid) . '%_%',
'format' => '?cmpage=%#%',
'current' => $current_page,
'total' => $max_num_pages,
'type' => 'list',
'prev_text' => __('«上一页'),
'next_text' => __('下一页»'),
'end_size' => 2,
'mid-size' => 3,
]);
其实在 WordPress 中,实现分页很简单,除了 WordPress 的各种查询类都已经很好的支持了创建分页数据所需要的参数,只要我们给响应的参数提供适当的数据即可,下次遇到类似需要的时候,可以动手尝试一下。

相关文章
-
盘点2023年依然好用的4款WordPress轻社区主题 2023-05-29 08:00:54
-
盘点2023年最好用的三款wordpress知识库主题 2023-05-29 08:00:26
-
个人网站选择WordPress还是Typecho? 2023-05-28 23:33:13
-
wordpress建外贸B2C独立站的五大优势 2023-05-28 23:05:49
-
盘点2023年依然好用的3款wordpress文档主题 2023-05-28 23:02:19
-
盘点2023年依然好用的3款wordpress外贸网站主题 2023-05-28 22:59:41
-
盘点2023年依然好用的3款wordpress电商主题 2023-05-28 22:56:05
-
wordpress后台地址是多少(附:后台地址修改教程) 2023-05-28 22:54:15
-
盘点2023年依然好用的3款wordpress笔记主题 2023-05-28 22:51:13
-
开源wordpress主题:kratos 介绍 2023-05-28 22:47:46