Intereting Posts
Изменить липкий статус сообщений из phpMyAdmin Multisite Plugin – Параметры доступа (wp_options) на дочерних сайтах Добавление социальных значков в тему через пользовательское меню администратора Как вы показываете номер сообщения в запросе? Применить фильтр the_content к настраиваемому полю с несколькими значениями Получите 5 лучших сообщений, просмотренных с помощью post_views_count Добавить ссылку на страницу с привязкой Как использовать шаблон пользовательских комментариев на всех моих страницах сообщений Как создать раскрывающийся список часовых поясов с помощью javascript или jQuery с параметрами, имеющими значение как смещение gmt? Показывать только родительские категории WordPress? Добавить окно поиска на страницу Пользовательская таксономия, ускользающая html attr Разница между установкой пути к папке темы Показаны текущие термины таксономии Добавление различных классов для привязки в меню навигации

Альтернатива query-> set, которая добавляет условия вместо переопределения

Я применяю условие таксономии к основному запросу в моем плагине, который исключает из него массив форматов сообщений.

Это делается следующим образом:

$query->set('tax_query', array( array( 'taxonomy' => 'post_format', // Post formats are queried as taxonomies 'field' => 'slug', 'terms' => self::$formats, 'operator' => 'NOT IN' ) )); 

Это работает – форматы сообщений исключаются, поскольку я хотел их. Однако проблема в том, что если какое- tax_query условие tax_query было указано раньше, тогда оно будет переопределено и потеряно в пространстве и времени.

Есть ли способ добавить мое условие tax_query не потеряв при этом все условия?

Solutions Collecting From Web of "Альтернатива query-> set, которая добавляет условия вместо переопределения"

$query->set – не единственный метод.

Вы хотите получить $query->get . Используя get вы можете восстановить существующее значение, добавить дополнительную часть, которую хотите, а затем установить переменную запроса с новым аргументом

 $tax_query = $query->get( 'tax_query' ); // add the extra parameter $query->set( 'tax_query', $tax_query ); 

Добавление дополнительного параметра – это просто добавление другого элемента с использованием стандартных функций массива PHP.