如何在wordpress中显示给定时间范围的帖子数量

时间:2010-07-30 17:01:48

标签: php jquery wordpress forms jquery-ui

我希望得到一些想法,因为我可以获得一些帖子,这些帖子已经发布在我们的博客上,但在某个日期范围内。我知道如何获得总数但需要这个额外的功能。

这是我获取帖子总数的原因:

$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天内的帖子数量。也许使用各种类型的日期选择器?

谢谢,

马特

2 个答案:

答案 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