我不知道有任何WordPress函数可以这样做,因此您可以尝试使用这种查询(未测试):
function get_custom_user_comments_count( $uid ){
global $wpdb;
$sql = "SELECT COUNT(*) as total
FROM {$wpdb->comments} as c
JOIN {$wpdb->posts} as p ON p.ID = c.comment_post_ID
WHERE c.comment_approved = \'1\'
AND p.post_status =\'publish\'
AND p.post_type =\'post\'
AND p.post_author != c.user_id
AND c.user_id = %d";
$comment_count = $wpdb->get_var( $wpdb->prepare( $sql, $uid ) );
return $comment_count;
}
使用方法如下:
global $current_user;
get_currentuserinfo();
echo \'Total Comments: \' . get_custom_user_comments_count( $current_user->ID );
这假设注释是在用户登录时写入的,因此
user_id
填充wp\\U comments表中的列。
更新:另一种方法是收集用户元中每个用户的评论数。例如,您可以尝试钩住comment_post
行动这种方法可以在用户在站点上写评论之前实现。