WordPress 获取指定作者的所有评论数量
在开发 WordPress 主题,特别是制作前端用户中心或作者个人资料页时,经常需要统计并展示特定作者发布的评论总数。本文将介绍如何通过 WordPress 函数准确获取指定作者的所有评论数量。
核心函数与参数
WordPress 提供了 get_comments() 函数来查询评论。要获取特定作者的评论,关键在于正确设置查询参数。
<?php
// 设置查询参数,获取指定作者ID的所有评论
$args = array(
'user_id' => 123, // 将 123 替换为目标用户的ID
'count' => false // 设为 true 可直接返回数量,但为清晰起见,此处先获取评论对象
);
// 执行查询
$author_comments = get_comments($args);
// 计算并输出评论数量
echo count($author_comments);
?>
参数详解与修正
原始示例代码中的 'post_author' 参数是错误的。get_comments() 函数中用于按评论者(用户)筛选的正确参数是 'user_id'。
- user_id (整数):WordPress 用户的 ID。这是获取该用户所发布评论的关键。
- count (布尔值):如果设置为
true,函数将直接返回评论数量,而不是评论对象数组。这更高效。
高效写法(推荐)
如果只需要评论数量,使用 'count' => true 参数是更优选择,它直接返回整数,节省内存。
<?php
$args = array(
'user_id' => 123, // 目标用户ID
'count' => true // 直接返回数量
);
$comment_count = get_comments($args);
echo $comment_count; // 直接输出数量
?>
获取当前登录用户的评论数量
结合 wp_get_current_user() 函数,可以轻松获取当前登录用户的评论数。
<?php
// 确保用户已登录
if (is_user_logged_in()) {
$current_user = wp_get_current_user();
$args = array(
'user_id' => $current_user->ID,
'count' => true
);
$my_comment_count = get_comments($args);
echo '您已发布 ' . $my_comment_count . ' 条评论。';
} else {
echo '请先登录。';
}
?>
应用场景与注意事项
- 用户中心:在“我的评论”板块展示统计。
- 作者页面:在作者档案中显示其互动活跃度。
- 性能注意:如果网站评论量极大,频繁查询可能影响性能。考虑使用 Transients API 进行缓存。
- 状态筛选:默认查询所有状态的评论(包括待审核、垃圾评论)。可通过
'status' => 'approve'参数只查询已批准的评论。
通过上述方法,你可以准确、高效地在 WordPress 中获取并显示指定用户的评论数量,为前端功能开发提供支持。