Столкнулся с задачей, что в цикле нужно вывести посты у которые будут впереди. В частности предстоящие события. Думал почему-то что такое возможно сделать в ВП указав в запросе query_post с помощью описанных в кодексе параметров для работы с датой. Но вывести посты "наперед" я так и не понял как, использую эти параметры. Они пригодны только для вывода постов в wordpress за какую-либо дату. Благо в кодексе есть пример:

<?php
  function filter_where($where = '') {
    $where .= " AND post_date >= '2009-03-01' AND post_date < '2009-03-16'";
    return $where;
  }
add_filter('posts_where', 'filter_where');
query_posts($query_string);
?>

Который наглядно демонстрирует, как можно подкрутить запрос. Вешать фильт add_filter('posts_where', 'filter_where'); нужно перед самим запросом. Чтобы вывести все посты в wordpress начиная с сегодняшней даты и дальше нужно немного изменить код нашей функции. Выглядеть это будет так:

function filter_where($where = '') {
	$currentDayOfYear = date('z') + 1;

	$where .= " AND DAYOFYEAR(post_date) >= '$currentDayOfYear' ";
	return $where;
}

Вначале была идея сравнивать текущий месяц мс месяцем поста, если он меньше, то выводить пост, если он равен, то сравнивать еще и день, чтобы не вывести посты уже за прошедшие числа месяца, если текущий месяц меньше, то не выводить посты. Но это все мутно и громоздко. А вот день в году от 1 до 366 является по сути тем же самым что мне и нужно было для вывода постов в wordpress с помощью функции query_post. Может быть кому-то пригодится, т.к. в интернете сам не нашел решений для похожих проблем в wordpress.

Прочтите также: