回应今天评论最多的用户的用户名?

时间:2013-12-10 作者:user2553561

没有日期-我正在尝试集成-代码正在工作:输出注释最多的用户。但目前我试图让用户most comments of today 但这不起作用。我做错了什么?

 <?php
    global $wpdb;
    $today = date(\'Y-m-d\');
    $tomorrow = date(\'Y-m-d\', time() + 86400);
    $where = \'WHERE comment_date >= %s  AND comment_date < %s AND user_id <> 0\';
    $comment_counts = (array) $wpdb->get_results("
    SELECT user_id, COUNT( * ) AS total
    FROM {$wpdb->comments}
    {$where}
    GROUP BY user_id
    ", object);
    foreach ( $comment_counts as $count ) {
    $user = get_userdata($count->user_id);
    echo \'http://fragmatisch.de/profil/\' . $user->display_name .  \'
    \';
    }
    ?>

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

您可以使用此查询来选择按用户id分组的注释计数。

  SELECT user_id, COUNT( * ) AS total FROM wp_comments WHERE DATE(comment_date) = CURDATE() AND user_id <> 0 GROUP BY user_id
顺便说一下,在where变量中,应该使用$wpdb->prepare()来为变量赋值(如果将来要使用它的话)

  $where = $wpdb->prepare( \'WHERE comment_date >= %s  AND comment_date < %s AND user_id <> 0\', $today, $tomorrow );
此代码应适用于您:

 global $wpdb;
 $where = \'WHERE DATE(comment_date) = CURDATE() AND user_id <> 0\';
 $sql = "SELECT user_id, COUNT( * ) AS total FROM {$wpdb->comments} {$where} GROUP BY user_id";
 $comment_count = $wpdb->get_results($sql, "ARRAY_A");
 if( !empty( $comment_count ) ) {
   foreach ( $comment_count as $count ) {
     $user = get_userdata($count[\'user_id\']); ?>
      <a href="<?php echo site_url().\'/author/\' . $user->data->user_login; ?>"><?php echo $user->data->display_name; ?></a><?php
   }
 }

SO网友:Marin Bînzari

尝试替换where 具有以下内容的条件变量:

$where = \'WHERE comment_date >= "\' . $today . \'" AND comment_date < "\' . $tomorrow . \'" AND user_id <> 0\';
你不用$today$tomorrow 变量。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post