统计用户在不同(非重复)帖子上的所有评论数量

时间:2013-06-07 作者:whiteletters in blankpapers

我提前感谢你的帮助。我使用Wordpress大约有2年了,但总是避免在脚本中使用SQL,并寻找内置函数来实现我的目标。

要统计特定用户提交的评论,请使用$user->ID 作为id,我没有找到内置方式,因此我使用:

 global $wpdb;

        $count = $wpdb->get_var(
          \'SELECT COUNT( comment_id ) FROM \'. $wpdb->comments .\'
          WHERE user_id = \'.$user->ID.\'
          AND comment_approved = "1"
          AND comment_type NOT IN ("pingback", "trackback" )\'
        );
实际上,我的目标是统计用户在不同帖子上的所有评论数。换句话说,如果用户对同一篇文章发表了2次或更多次评论,那么只需增加$count 变量为1。

非常感谢您的帮助。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

如果要统计用户评论的帖子数,可以尝试:

global $wpdb;

$sql = \'SELECT COUNT( comment_ID ) FROM \' . $wpdb->comments . \'  
        WHERE user_id = %d 
        AND comment_approved = "1"
        AND comment_type NOT IN ("pingback", "trackback" )
        GROUP by comment_post_ID\';

$count = $wpdb->get_var( $wpdb->prepare( $sql, $user->ID ) );
我们按帖子ID分组。

结束