Получить условия от пользовательской таксономии и текущего сообщения

Я работаю с плагином WooCommerce. У меня есть три продукта (так называемые «наборы»), и каждый комплект содержит несколько элементов. «Элементы» – это тип пользовательских сообщений, которые связаны с каждым набором через поле отношений. В каждом элементе применяется специальная таксономия («отделы»). Отделения не имеют прямой ссылки на продукты (или «наборы»), за исключением предметов.

Когда я показываю продукты, я хочу, чтобы они показывали <ul> который пересекает каждый термин, найденный в «отделах». Затем внутри этого <li> , есть вложенный <ul> который перечисляет каждый элемент, который находится в текущем отделе И в текущем продукте.

У меня есть цикл, который работает для отображения элементов, связанных с каждым продуктом:

 <a href="#details<?php the_ID(); ?>" class="details button" data-id = "<?php the_ID() ?>">Details</a> <div class="items" id="details<?php the_ID(); ?>"> <?php $items = get_field('kit_items');?> <?php if( $items ): ?> <ul> <?php foreach( $items as $item ): ?> <?php $ident = $item->ID ?> <li> <a href="#overlay<?php echo $ident ?>" class="item item<?php echo $ident ?>" data-id ="<?php echo $ident ?>"> <?php echo get_the_title( $item->ID ); ?> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?> 

Но я не уверен, как запросить пользовательскую таксономию, распечатать условия, а затем распечатать элементы, связанные с отделом и текущим продуктом.

Solutions Collecting From Web of "Получить условия от пользовательской таксономии и текущего сообщения"

Вы можете публиковать условия с помощью wp_get_object_terms

 $terms = wp_get_object_terms($post->ID, 'departments'); if(!empty($terms)){ foreach($terms as $term){ $exampleName = $term->name; $exampleSlugs[] = $term->slug; } } 

В качестве альтернативы вы можете сначала убедиться, что правильная таксономия используется:

 $taxonomies = get_taxonomies(); echo '<pre>'; print_r($taxonomies); echo '</pre>'; 

Если все в порядке, вы увидите массив со всеми таксономиями, а таксономические «отделы» присутствуют в этом массиве.

Когда вы хотите вывести все термины, вы можете использовать это:

 echo '<pre>'; $departments = get_terms( 'departments', 'orderby=count&hide_empty=0' ); print_r($departments); echo '</pre>'; 

Тогда вы можете использовать его в любом случае.