Исключение конкретных терминов из запроса WP
Я хотел бы создать цикл 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 answers
Ваш налоговый запрос должен искать в другом массиве.
'tax_query' => array(
array(
'taxonomy' => 'categories',
'field' => 'slug',
'terms' => array( 'special-offers', 'other-terms' ),
'operator' => 'NOT IN',
)
),
В остальном все вроде в порядке. Проверьте wp_codex на этом
Окончательное решение состояло в том, чтобы добавить идентификатор исключения и термина в аргументы таксономии. Так как он предназначен для таксономии и использует цикл foreach.
$args = array(
'parent' => 0,
'hide_empty' => true,
'exclude' => 13,
);
И ответ на вопрос о том, как выводить сообщения пользовательского типа без таксономии, можно найти здесь: http://www.codeforest.net/wordpress-tip-show-posts-no-category-term
Спасибо CBroe и ste за их время.