Как отобразить количество постов за определенный период времени в WordPress - PullRequest
0 голосов
/ 30 июля 2010

Я надеялся получить некоторые идеи о том, как я могу получить ряд сообщений, которые были размещены на нашем блоге, НО в пределах определенного диапазона дат. Я знаю, как получить общее количество, но мне нужна эта дополнительная функциональность.

Это то, что у меня есть для получения общего количества сообщений:

$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 ]

4 голосов
/ 30 июля 2010

Конечно, вы можете сделать это, установив диапазон дат в пользовательском запросе :

$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
";
2 голосов
/ 31 июля 2010

Хорошо, благодаря Пату, он заставил меня задуматься, и я придумал это:

$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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...