问题描述
||
我正在尝试对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);
该查询似乎获得了有史以来评论最多的帖子,而不是过去一周中评论最多的帖子。
提前致谢。
解决方法
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
\";
编辑:日期过滤器从YEAR更改为WEEK
, 这应该工作:
global $wpdb;
$querystr = $wpdb->get_results(\"SELECT comment_count,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_count
字段进行排序。尝试订购与该组匹配的评论数:
ORDER BY count(*) desc