У меня много проблем с использованием php query_posts(array(‘category__and’=>array(1,3))) — кажется, он вытягивает все, что находится в категории 1, независимо от того, находится ли оно также в категории 3, и я хочу только сообщения, если они существуют в обеих категориях. И, в конце концов, мне все равно нужна куча операторов ИЛИ, так есть ли лучший способ сделать это, чем query_posts?
Мне нужна страница сообщений, которые существуют в различных категориях, например:
категории 1 И 3 ИЛИ категории 1 И 5 ИЛИ категории 1 И 6
Но не категории 1 И 4
Любая помощь будет принята с благодарностью. Спасибо.
Странно, что использование
category__and
должно работать.Что касается следующей логики, я не думаю, что вы можете выполнить что-то сложное с параметрами запроса. Есть несколько возможных способов справиться с этим, о которых я могу думать:
posts_where
фильтром;На самом деле это был лучший совет для меня. Я пытался сделать слишком много вещей с этим выбором категории, и, упростив его, category_and работал просто отлично.
Изысканный. Мне так нужно читать об этом… 🙂
Большое спасибо за это, но это так сильно блокирует его, что я вообще не получаю сообщений. Имеет ли значение, если это также настраиваемые типы сообщений? Я попытался добавить свои дополнительные критерии (тип сообщения, метаданные, сортировка), но это не имело никакого значения. Я думаю, что мне нужно переосмыслить структуру моей категории.
@maddy — Не могли бы вы добавить код, который вы сейчас используете, к вопросу, пожалуйста.
Возможно, вы сможете добиться чего-то вроде того, что ищете, с
tax_query
аргументом.В вашем случае (непроверенный, еще может не сработать) что-то вроде этого будет служить для получения сообщений (в категории 1) И (в категории 3, 5 или 6) И (НЕ в категории 4):
Вы должны быть в состоянии сделать это, используя новые аргументы tax_query, например.
Все параметры категории/тега являются просто оболочками для
tax_query
, поэтому, когда вы используетеcategory__in
или любой другой из них, вы, по сути, просто используете ярлык для написания файлаtax_query
.