2010-07-30 2 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

+0

@pat ... 예. 다음에 그렇게 할 생각이었습니다. – TikaL13

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

관련 문제