По сути это будет самый обычный цикл с добавлением фильтра.
Обратите внимание, если вам нужно вывести посты за год, месяц или неделю, то WP_Query позволяет это сделать без каких-либо дополнительных действий.
Функция с фильтром
Укажите здесь промежуток времени, за который нужно вывести посты, даты должны быть именно в таком формате ГГГГ-ММ-ДД. Функцию можете засунуть в functions.php.
function true_filter_by_date($where = '') { $from = '2012-11-15'; // промежуток времени c 15.11 до 24.12 $to = '2012-12-24'; $where .= " AND post_date >= '$from' AND post_date <= '$to'"; return $where; } |
Вы можете создать любое количество фильтрующих функций.
Вывод постов
Посты можно вывести как через WP_Query, так и через query_posts, главное не забудьте отключить фильтр в конце, иначе он будет применяться ко всем последующим циклам на странице.
add_filter('posts_where', 'true_filter_by_date'); // включаем фильтр $params = array( 'posts_per_page' => -1 // можно добавить и других параметров для WP_Query ); $q = new WP_Query($params); while($q->have_posts()) { $q->the_post(); echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>'; } wp_reset_postdata(); remove_filter('posts_where', 'true_filter_by_date'); // отключаем фильтр под конец |
Источник: misha.blog