现在我有一个名为“epicredvote”的元键,它根据这个epicredvote编号对我的帖子进行排序。目前,它每天都在这样做,因此如果我有2篇帖子,epicredvote最高的帖子将位于顶部。我想按周而不是按天分类。我希望我那周的所有帖子都能得到epicredvote的批准。最高#位于顶部。
$querystr = ”
SELECT $wpdb->posts.*, YEAR(post_date) AS year,
MONTH(post_date) AS month,
DAYOFMONTH(post_date) AS dayofmonth
FROM $wpdb->posts, $wpdb->postmeta
WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id
AND $wpdb->postmeta.meta_key = ‘epicredvote’
AND $wpdb->posts.post_status = ‘publish’
AND $wpdb->posts.post_type = ‘post’
GROUP BY ID
ORDER BY LEFT($wpdb->posts.post_date, 10) DESC, $wpdb->postmeta.meta_value+0 DESC
“;
请帮忙,这将是惊人的。感谢所有的摇滚明星们!
最合适的回答,由SO网友:Amanda Giles 整理而成
我同意Rarst关于WEEK函数的说法,但也要确保使用YEAR来订购帖子。因此,您的订购方式如下所示:
ORDER BY YEAR($wpdb->posts.post_date) DESC, WEEK($wpdb->posts.post_date) DESC, $wpdb->postmeta.meta_value+0 DESC
当然,这仍在拉取所有帖子,因此您可能还希望通过将其添加到WHERE子句,将查询限制为仅拉取当前年份。
AND YEAR($wpdb->posts.post_date) = YEAR(CURDATE())