我希望得到一些想法,因为我可以获得一些帖子,这些帖子已经发布在我们的博客上,但在某个日期范围内。我知道如何获得总数但需要这个额外的功能。
这是我获取帖子总数的原因:
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts);
然后我只是回显我想要显示那个数字的地方
<?php if ( is_page('wordpress-numbers')) {
echo "<strong>".$numposts.' posts have been published since August 12, 2009'."</strong>";
}
?>
例如,我想知道过去7天内的帖子数量。也许使用各种类型的日期选择器?
谢谢,
马特
答案 0 :(得分:4)
当然,您可以通过在custom query:
中设置日期范围来实现$today = date("Y-m-d");
$sevenDaysAgo = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-7, date("Y")));
$querystr = "
SELECT wposts.*
FROM $wpdb->posts wposts,
WHERE wposts.post_date BETWEEN '" . $today . "' AND '" . $sevenDaysAgo . "'
AND wposts.post_type = 'post'
ORDER BY wposts.post_date DESC
";
答案 1 :(得分:2)
好的,谢谢帕特他让我在这里思考,我想出了这个:
$querystr = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' AND post_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) LIMIT 0, 30");
if (0 < $querystr) $querystr = number_format($querystr);
然后我会回应结果:
echo "<strong>".$querystr.' posts have been published in the last 7 days'."</strong>";
接下来我要做的是添加选择开始日期然后显示7天结果的功能。
再次感谢Pat