Почему работает запрос со взаимоисключающими параметрами?

Здравствуйте!
В одном из мест кода темы WP обнаружил фрагмент:
<?php
$args = array(
	'post_type' => 'post',
	'tax_query' => array(
		'relation' => 'OR',
		array(
			'taxonomy' => 'category',
			'field' => 'slug',
			'terms' => array( 'some-tag' )
		)		
	)
);

Как видно, код должен (далее идет собственно выполнение запроса) получать посты из категории, slug которой соответствует some-tag. Но такой категории в БД нет (имеется в виду стандартная рубрика WP), есть только метка с таким slug'ом, и этот запрос все равно работает.
Вопрос - как такое может быть, возможно, я что-то упускаю?..

Спасибо.
  • Вопрос задан
  • 2400 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
WordPress Evangelist
Надо смотреть сам SQL запрос, который получился. Подозреваю, что у вас из-за оператора OR происходит что-то типа "если есть посты по этому tax_query - вернуть их, иначе - стандартные результаты". Могу ошибаться, но без самого SQL запроса дебажить нереально. Установите плагин Query Monitor - все решится за пару минут.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Что такое "категория в БД"?
Если Вы имеете в виду столбцы, то, наверное, у WP есть доп. обработчик, преобразующий эти параметры.
Ответ написан
gangstarcj
@gangstarcj
Я один вижу только массив? а где запрос?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы