@Skanex
новичок

Как в Wordpress отфильтровать записи в основном цикле по дате?

Приветствую!
Прошу помощи с функцией для Вордпресс. Есть необходимость скрывать посты/записи из основного цикла с фильтрацией по дате.

Конкретно необходимо следующее: при обращении к страницам таксономий и рубрик, функция сверяет текущую дату с датой поста и если дата записи "устарела" , то запись в цикле не выводится, а посты с текущей датой и запланированной (они через функцию видимы пользователям) наоборот.

Есть, например, такие функции, которые исключают посты по категории:

// фильтр скрытых рубрик
function hidecategory($query) {
if ( $query->is_home ) {
	$query->set('cat','-1,-7');
	}
return $query;
}
add_filter('pre_get_posts', 'hidecategory');


Вот по типу такого и нужно что-то придумать. Копался и через compare и другими способами - не получается.

Прошу помочь!

UPD
Пробовал так
// Создадим новую функцию которая добавит условие where в запрос
function filter_where( $where = '' ) {
	if ($query->is_archive() && $query->is_main_query())
$current_date = date('Y-m-d');	
$where .= " AND post_date >= .$current_date";
	return $where;
}

add_filter( 'pre_get_posts', 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'pre_get_posts', 'posts_where', 'filter_where' );


не вышло...
  • Вопрос задан
  • 639 просмотров
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
Смотрите 'date_query' wp-kama.ru/function/wp_query#parametry-daty-vremeni вам нужно в 'after' ставить текущую дату, ну или вчерашнюю, скорее всего, и "старые" посты не должны выводиться

UPD
add_action('pre_get_posts', 'date_filter');
function date_filter( $query ){
    if ( ! is_admin() && $query->is_main_query() && !$query->is_singular() ) {
        $args = array (
            array(
                'after'    => array(
                    'year'  => 2016,
                    'month' => 12,
                    'day'   => 1,
                ),
            ),
        );
        $query->set('date_query', $args);
    }
}

Подставьте нужные условия и нужную дату.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы