Intereting Posts
Multisite, не может видеть суб блоги Как получить первый пост в категории пользовательской таксономии Как показать изображения категорий (из плагина) на обычной странице (page-example.php)? Как отключить плагин для некоторых ролей WooCommerce – редактировать шаблоны Отправить дополнительный параметр с помощью xml-rpc login? Результаты пользовательского поиска Изменен префикс wp_. Каким образом можно изменить любой префикс? Как отображать комментарии и форму комментариев в пользовательском типе сообщений? Как изменить ссылку меню продукта на панели администратора WordPress Это хорошая идея переименовать «index.php» в папку «wp-admin», чтобы избежать взлома? Найти по post_meta, затем отсортировать по post_meta, затем отсортировать по дате (wp_posts) Stymied by 500.5 ошибка для WordPress на IIS 8 / Windows Server 2012 .htaccess и панель администратора WordPress Дополнительные пользовательские поля: условное выражение с выбором

Альтернатива 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.