2010-07-30 72 views
0

我希望得到一些想法,以瞭解如何獲得一些帖子,這些帖子已發佈在我們的博客上,但在某個日期範圍內。我知道如何獲得總數,但需要這個額外的功能。如何在wordpress中顯示給定時間範圍內的帖子數量

這是我爲獲得職位的總數:

$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

好感謝帕特他讓我想到這裏,我想出了與此:

$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天結果的能力。

再次感謝帕特

+0

不用擔心 - 很高興你把它整理出來。日曆小部件將是一個很好的方法來做到這一點。你甚至可以看中所有讓用戶選擇範圍的開始和結束日期。 – Pat 2010-07-30 22:29:51

+0

@pat ...是的,我正在考慮下一步做什麼。 – TikaL13 2010-08-02 14:29:04

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 
"; 
+0

感謝帕特......不過這也給了我一些接近我想要......什麼問題是如何我只是得到了一些帖子? $ week = date('W'); $ year = date('Y'); query_posts('year ='。$ year。'&w ='。$ week); – TikaL13 2010-07-30 20:01:04

相關問題