Поддержка Плагины Фильтр "pre_get_posts"

  • Столкнулся с одной не очень приятной ситуацией при использовании фильтра «pre_get_posts». Через этот фильтр я глобально переопределяю параметры запроса для нужных типов страниц. Очень удобно кстати, если использовать произвольные типы контента и таксономиий.

    Суть в том, что фильтр «pre_get_posts» влияет также на «Меню». Походив отладчиком я понял что «меню» это тоже тип и он попадает на ряду с типами контента под этот фильтр.

    Поэтому если я глобально в functions.php вешаю на фильтр «pre_get_posts» свою функцию, которая устанавливает нужный мне тип, то эта функция также затрагивает меню, чего не хотелось бы. Т.к. перетирается тип у меню «post_type» => «nav_menu» на установленный мной, то меню ничего не возвращает, что есть неверно.

    Можно конечно поиграться с add_filter() и remove_filter(), но может быть есть более элегантный способ?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Atrax

    (@atrax)

    Ethical engineer

    А в самом фильтре проверку «условия применимости» — не самый ли простой способ?

    Действительно. Почему-то не подумал, что в момент, когда отрабатывает фильтр, все данные уже определены и можно над ними проверку сделать.

    $query->query_vars[‘post_type’] !== ‘nav_menu_item’

    Спасибо 🙂

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Фильтр "pre_get_posts"» закрыта для новых ответов.