В WP появилась возможность вывода записей из несколько таксономий. Начиная с версии 3.1, судя по обновленному сообщению о «query_posts» на wp-kama.ru:
С версий 3.1 и выше используется аргумент tax_query …
В кодексе сейчас есть раздел «Multiple Taxonomy Handling». Но непонятно когда он появился, не нашел даты изменения доки.
Не разобрался с двумя моментами:
- При указании категории, tax_query в аргументах запроса игнорируется. Сколько гонял, у меня всегда так выходило. В общем-то, можно понять. Категории — это подмножество таксономии. И данные хранятся в одной таблице _term_relationships. Предполагаю, что аргументы категорий и таксономий в запросах к записям являются взаимоисключающими. Копать дальше и выяснять не стал.
- Как понял, несколько таксономий могут объединяться либо по конкатенации (логическое и), либо по дезъюнкции (логическое или). Как понял, сложной логики нет. Т.е., не получится, например: такой-то термин и один из таких-то, X and (Y or Z). Тоже мало копался, могу ошибаться.
Интересно, что тоже самое относится к произвольным полям. Появилась возможность выбирать по нескольким ключам. В кодексе есть раздел Multiple Custom Field Handling. Но работает такой запрос очень медленно. Оно и понятно, достаточно глянуть на таблицу для мета-полей _postmeta.
——————-
Ссылки в тему.
Введение в пользовательскую таксономию WordPress 3.0 — перевод статьи о таксономии