Sql WordPress自定义查询过去7天内评论最多的帖子

Sql WordPress自定义查询过去7天内评论最多的帖子,sql,wordpress,jquery-post,Sql,Wordpress,Jquery Post,我正在尝试对wpdb进行查询,以获得过去一周评论最多的帖子。。。知道我做错了什么吗 $querystr = "SELECT comment_count, ID, post_title FROM $wpdb->posts wposts, $wpdb->comments wcomments WHERE wposts.ID = wcomments.comment_post_ID AND wcomments.comment_date >=

我正在尝试对wpdb进行查询,以获得过去一周评论最多的帖子。。。知道我做错了什么吗

$querystr = "SELECT comment_count, ID, post_title
        FROM $wpdb->posts wposts, $wpdb->comments wcomments
        WHERE wposts.ID = wcomments.comment_post_ID
        AND wcomments.comment_date >= CURDATE() - 7 
        GROUP BY wposts.ID
        ORDER BY comment_count DESC
        LIMIT 0 ,  10
 ";

 $pageposts = $wpdb->get_results($querystr);
该查询似乎获得了所有时间内最热门的评论文章,而不是过去一周中被评论最多的评论文章

提前感谢。

这应该可以:

global $wpdb;
$querystr = $wpdb->get_results("SELECT comment_count, ID,post_title 
    FROM $wpdb->posts 
    WHERE 
    post_status='publish' AND 
    post_date > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 WEEK) 
    ORDER BY comment_count DESC 
    LIMIT 0 , 10");

您是通过
posts
表的
comment\u count
字段排序的。尝试按组匹配的注释数排序:

ORDER BY count(*) desc

Lonut解决了日期范围问题和评论最多的问题,但它不会只选择在过去X个时间间隔内评论最多的帖子

这应该做到:

$querystr = "SELECT comment_count, ID, post_title
        FROM $wpdb->posts wposts, $wpdb->comments wcomments
        WHERE wposts.ID = wcomments.comment_post_ID
        AND wposts.post_status='publish'
        AND wcomments.comment_approved='1'
        AND wcomments.comment_date > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 WEEK) 
        GROUP BY wposts.ID
        ORDER BY comment_count DESC
        LIMIT 0 ,  10
 ";

编辑:过滤日期从一年到一周的变化

感谢您的帮助。。。几乎参见Jack的答案。排序依据位于posts表的一列
comment\u count
。此列中的值不会因where子句中的其他条件而变化。我不希望日期、状态或批准的过滤器影响计数;他们只会过滤掉帖子。很好,但是评论数量是由WordPress引擎根据批准的评论数量设置的。“状态”和“已批准”筛选器已就位,以便筛选出已发表评论但尚未批准的帖子。如果您知道
comment\u approved
上的筛选器没有任何作用,为什么要将其包括在内?此外,答案假装在
注释日期
上过滤,但事实并非如此-1许可证确实起到了作用。您是否尝试了带/不带的查询?没有它会给你所有的评论,即使他们没有被批准的职位。至于日期过滤器。为了测试它,我用了一年而不是一周。根据问题中的说明。我会编辑它。