Отображать пользовательский тип сообщения в иерархическом порядке с помощью get_terms

Как я могу отобразить пользовательский тип сообщений типа с пользовательской таксономией (категория продукта) в списке в иерархическом порядке?

Я хотел бы получить их в следующем порядке:

h3.parentcategory 1 -h4.childcategory 1 -li.product of childcategory 1 -li.product of childcategory 1 -h4.childcategory 2 -li.product of childcategory 2 -li.product of childcategory 2 h3.parentcategory 2 -h4.childcategory 1 of parent 2 

К сожалению, я не могу обернуть голову вокруг второго уровня (детская категория 1 и 2). Я использую этот код для отображения категории и продукта:

 $custom_terms = get_terms( 'productcategory' ); foreach ( $custom_terms as $custom_term ) { wp_reset_query(); $args = array( 'post_type' => 'product', 'tax_query' => array( array( 'taxonomy' => 'productcategories', 'field' => 'slug', 'terms' => $custom_term->slug, 'orderby' => 'term_group', ), ), ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { echo '<h3>' . $custom_term->name . '</h2>'; while ( $loop->have_posts() ) : $loop->the_post(); get_the_title(); endwhile; } } 

Мне нужна помощь в определении вложенных уровней этого списка.

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

То, что я пытаюсь сделать, это перечислить продукты, которые являются частью подкатегории, эти подкатегории могут быть частью большой семьи (Maincategory). Я пытаюсь группировать подкатегории в главной категории.

 vegetables (Main) -tomatoes (sub) -red tomatoe sweet (product) -pink tomatoe sour (product) -cucumber (sub) -some kind of cucumber(product) fruits (Main) -apple(sub) -sweet apple (product) -Golden delicious (product) 

Solutions Collecting From Web of "Отображать пользовательский тип сообщения в иерархическом порядке с помощью get_terms"

Попробуйте что-то вроде этого:

 <?php $parent_terms = get_terms( 'name_of_your_taxonomy', array( 'parent' => 0, ) ); foreach( $parent_terms as $parent_term ) { $child_terms = get_terms( 'name_of_your_taxonomy' array( 'child_of' => $parent_term->term_id, ) ); foreach( $child_terms as $child_term ) { $args = array( 'post_type' => 'product', 'tax_query' => array( array( 'taxonomy' => 'name_of_your_taxonomy', 'field' => 'slug', 'terms' => $child_term->slug, ), ), ); $loop = new WP_Query($args); if( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); echo '<h3>' . $parent_term->name . '</h3>'; echo '<h4>' . $parent_term->name . '</h4>'; echo get_the_title(); endwhile; endif; } } wp_reset_query(); 

По существу, вы делаете:

  1. Получение всех родительских терминов;
  2. Прохождение через родительские условия и получение детей каждого срока;
  3. Проникновение через детские условия и получение должностей, связанных с ребенком.