Исключение конкретных терминов из запроса 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; 

?>
Author: Jack, 2017-02-06

2 answers

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

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

В остальном все вроде в порядке. Проверьте wp_codex на этом

 1
Author: ste, 2017-02-06 11:15:45

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

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

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

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

 1
Author: Jack, 2017-02-07 09:40:25