Исключение особых условий из WP_Query

Я хотел бы создать цикл foreach для терминов таксономии, который предназначен для пользовательского типа записей.

Точнее, я хочу цикл, который запрашивает все категории товаров, но не категорию «специальные предложения», а не категории подкатегорий. Бонус будет в том случае, если у продукта нет категории, запрашивающей их тоже и упорядочивающей все их в порядке ASC (не как сортировка продуктов и категорий по отдельности. Все они должны быть отсортированы одновременно).

Так что же мне делать с моим кодом, чтобы он работал по мере необходимости?

Текущий код:

<?php

$args = array(
'post_type'    => 'products',
'showposts'    => -1,
'post_status'  => 'publish',
'parent' => 0,
'hide_empty' => true,
'tax_query' => array(
'taxonomy' => 'categories',
'field'    => 'slug',
'terms'    => array( 'special-offers', 'other-terms' ),
'operator' => 'NOT IN',
),
);

$terms = get_terms('categories', $args );

foreach ( $terms as $term ) :

echo '<h2>' . $term->name . '</h2>';

endforeach;

?>

2

Решение

Ваш налоговый запрос должен искать в другом массиве.

'tax_query' => array(
array(
'taxonomy' => 'categories',
'field'    => 'slug',
'terms'    => array( 'special-offers', 'other-terms' ),
'operator' => 'NOT IN',
)
),

Остальное вроде нормально.
Проверьте WP_Codex на этом

1

Другие решения

Окончательным решением было добавить исключение и термин id к аргументам таксономии. Так как он для таксономии и использует цикл foreach.

$args = array(
'parent' => 0,
'hide_empty' => true,
'exclude' => 13,
);

И ответ о том, как выводить пользовательские посты без таксономии, можно найти здесь: http://www.codeforest.net/wordpress-tip-show-posts-no-category-term

Спасибо CBroe и Ste за их время.

1

По вопросам рекламы [email protected]