一篇文章有多少人发表了评论?

时间:2013-05-04 作者:Giacinto

下午好请,我想有一个功能,计算每个帖子显示(一个接一个),不是有多少评论,而是有多少作者的评论后,在那个时候查看。类似这样:

function commentCount() {
global $wpdb; 

$count = $wpdb->get_var(\'SELECT COUNT(distinct comment_author) FROM\' .$wpdb->comments. \'WHERE comment_approved = 1 AND comment_post_ID = $postID\');
    echo $count;     
 }
非常感谢!。

下午好。为了更好地解释,我在评论栏的开头附上了一张我在帖子页面上看到的情况图片。![在此输入图像描述][1]

[1] :http://i.stack.imgur.com/bNElu.jpg http://i.stack.imgur.com/bNElu.jpg

1 个回复
SO网友:s_ha_dum

您的PHP是错误的,但您所做的看起来应该可以工作。

$count = $wpdb->get_var(
    \'SELECT COUNT(distinct comment_author) 
    FROM \' .$wpdb->comments. \' 
    WHERE comment_approved = 1 
    AND comment_post_ID = \'.$post->ID
);
echo $count;  
确切地说,您试图在单引号内使用变量,但这行不通。变量不会在单引号内展开。而且字符串中没有空格,所以生成的SQL无效。我不知道你的$postid 变量来自但在循环内$post->ID 工作,所以我用了它。

也许还有其他方法可以做到这一点,但我不能告诉你,除非你能为这个问题添加更多的背景和细节。

这里有一个更详细的例子,其中包括我认为OP可能需要的几条信息。

function get_commentCount_wpse_98315() { 
  global $wpdb; 
  $id = get_the_ID();
  $comment_data = $wpdb->get_row(\'
    SELECT 
    COUNT(distinct comment_author) as comment_count,
    COUNT(comment_ID) as comment_author_count,
    ("No idea what this is") as phrases
    FROM \'.$wpdb->comments.\'  WHERE comment_post_ID = \'.$id
  ); 
//   var_dump($comment_data);
  echo implode(\' | \',$comment_data);
}

结束

相关推荐

Author_meta ONLY if it exists

我只想显示作者的网站链接,如果它存在的话,但我无法计算出它的确切语法。我有这个 if ( get_the_author_meta(\'user_url\') ) : // If a user has filled out their decscription show a bio on their entries echo the_author_meta(\'user_url\'); endif; 但我需要把它