Снова ищем одного-двух вордпрессеров в нашу команду!

Как вывести посты за определенный промежуток времени

По сути это будет самый обычный цикл с добавлением фильтра.

Обратите внимание, если вам нужно вывести посты за год, месяц или неделю, то 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'); // отключаем фильтр под конец

Миша

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2019 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

Комментарии 6

  • Александр30 октября 2015 #

    Здравствуйте, подскажите пожалуйста как получить количество постов за определенную дату из определенной категории или посты за промежуток от 10 до 30 дней, до настоящего.

    • Александр30 октября 2015 #

      Количество постов за промежуток от 10 до 30 дней, до настоящего.

  • Сергей28 января 2016 #

    Как вывести записи за определенный период определенной рубрики?

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, в случае несоблюдения этого условия в 99% случаях ваш коммент будет удалён, а автор заблокирован. Печалька.