Какой хук / фильтр я должен использовать, чтобы не отображать посты в моем блоге (например, если пост был написан за последний год).
Я хочу использовать ловушку / фильтр, а не код в шаблоне, чтобы плагины или RSS-канал не могли получить к нему доступ
Ты можешь использовать
pre_get_posts()
действие, этот крюк называется после
объект переменной запроса создан, но до того, как
запустить. Таким образом, вы должны использовать его с другими условиями.
Вот пример кода:
function wh_getThisYearPost($query)
{
if (($query->is_home()) //<-- for home page
|| $query->is_feed() //for feed
|| $query->is_search() // for search
)
{
//to get post from current year only.
$query->set('year', date('Y'));
}
}
add_action('pre_get_posts', 'wh_getThisYearPost');
Код помещается в файл function.php вашей активной дочерней темы (или темы). Или также в любом файле плагина php.
Обратите внимание: приведенный выше код не будет работать на вашем WP_Query
Вы вручную добавили Параметры даты в этом запросе.
Надеюсь это поможет!
Других решений пока нет …