Вывести посты за определенный промежуток времени в WordPress
Опубликовано: 02.09.2018
По сути это будет самый обычный цикл с добавлением фильтра.
❤Как ПРИВЛЕЧЬ клиентов в свой бизнес! ПРОДАЮЩИЙ ЛЕНДИНГ! Почему у нас покупают? ЛИДЫ! ТРАФИК на сайт
Обратите внимание, если вам нужно вывести посты за год, месяц или неделю, то 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' ) ; // отключаем фильтр под конец |