WordPress как на ладони

Как получить все записи таксономии — не термина(ов)?

Есть таксономия season и тип записи event.

Записи эти могут быть прикрепленны к элементам этой таксономии, а может нет. Т.е. у некоторых записей есть термины, а у некоторых нет вообще, они вообще не припрепленны к таксономии.

Задача: как составить запрос для get_posts() (WP_Query), чтобы показать записи, которые прикрепленны хотябы к одному элементу указанной таксономии.

Пробовал так:

$posts = get_posts([
	'posts_per_page' => -1,
	'post_type' => 'event',
	'tax_query' => array([ 'taxonomy'=> 'season', 'operator'=>'EXISTS' ]),
]);

НЕ работает sad

1
Гость
7.5 лет назад
  • 1
    Kama9618

    В данном случае 'operator'=>'EXISTS' относится именно к терминам таксы, а не к самой таксе... Поэтому не работает.

    Я тут вижу решение в виде хака: нужно получить ID всех элементов таксономии и указать их в запросе с условием хотя бы в одном - 'operator'=>'IN'.

    $posts = get_posts([
    	'posts_per_page' => -1,
    	'post_type' => 'event',
    	'tax_query' => array([ 'taxonomy'=>'season', 'terms'=>get_terms('season', array('fields'=>'ids')), 'operator'=>'IN' ]),
    ]);

    Таким образом мы получим записи, которые находятся хотя бы в одном из указанных терминов, а указаны все термины таксономии, значит мы получим записи всех таксономии (для которых указан любой термин таксономии).

    Короче, так мы получим записи из таксономии.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация