Удалить пост из последних постов через месяц только с определенным тегом

Мне было интересно, есть ли способ изменить цикл wordpress, чтобы проверять сообщения с определенным тегом, и если у них есть этот тег и ему не исполнился 1 месяц? отображать их в последних сообщениях на главной странице?

Изменить: что-то вроде

function removeFromLoop(){  if(post_age >= "31" && tag == "sometag"){    query->dont;  }}

Ответы и комментарии:

Вы можете использовать tax_query, чтобы отфильтровать сообщение по пользовательской таксономии. или wp_query предоставляет фильтр с именем tag
Создан 15-09-2017 05:05 user3888958

Есть ли способ сделать некоторые условные операторы в этом массиве? Потому что я хочу сообщения старше месяца, у которых нет тега X, но когда присутствует тег X, они должны быть только за последний месяц. Я не хочу продолжать добавлять на сайт плагины, когда смогу научиться правильно его кодировать.
Создан 19-09-2017 12:02 benikens

Это можно решить с помощью сотен плагинов, но я рад, что кто-то хочет сделать это с помощью кода.
Так что вы хотите на самом деле не скрывать что-то, а просто принимать сообщения после даты месяца назад.
$ onemonth_before = date ('Y-m-d', strtotime ('- 1 месяц'));
$ args = array (
    // если у вас есть собственный тип записи
    'post_type' => 'your-post-type',
    'posts_per_page' => 20,
    'post_status' => 'publish',
    'tag' => 'sometag',
    'date_query' => массив (
        'after' => $ onemonth_before,
        'включительно' => правда,
    ),
);
$ query = new WP_Query ($ args);

Это может потребовать некоторых изменений, чтобы работать в вашем случае.
Еще немного информации о мощном запросе date_query можно найти в
кодекс
Создан 15-09-2017 07:01 Drupalizeme1,4302617