2009-09-07 3 views
0

Я бы хотел показать только сообщения последнего X дня на моей главной странице wordpress. Скажем, неделя, так что 7 дней.Wordpress: loop only include posts X day's old

Каков способ подсказки wordpress для выбора только сообщений за последние X дней в цикле?

В настоящее время у меня есть работа с помощью взлома, но это испортит разбивку на страницы. Переход на следующую страницу не позволяет выбрать правильные сообщения.

//Hack found on the bottom of http://codex.wordpress.org/Template_Tags/query_posts 
function filter_where($where = '') { 
    //posts in the last 7 days 
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'"; 
} 
add_filter('posts_where', 'filter_where'); 
query_posts($query_string); 
if (have_posts()) : while (have_posts()) : the_post(); 
... and the usual 

ответ

1

Вы можете частичный успех со следующим:

function filter_where($where = '') { 
    $date_split = date('Y-m-d', strtotime('-7 days')); 
    if (is_paged()) { 
    $where .= " AND post_date < '" . $date_split . "'"; 
    } else { 
    $where .= " AND post_date > '" . $date_split . "'"; 
    } 
    return $where; 
} 
add_filter('posts_where', 'filter_where'); 
query_posts($query_string); 

Моя страница показывает сообщения за последние 7 дней, страница/1 начинает показывать сообщения после того дня и страница/2 работает как продолжение страницы/1, как ожидалось.