Перечислите только детей первого уровня с конкретным сроком таксономии

У меня есть сайт, настроенный на следующее:

  • Тип сообщения: продукт
  • Таксономия: product_cat
  • Таксономия Slug: hydro

Термин «гидро» имеет несколько непосредственных условий для ребенка и несколько внуков.

Мне нужно написать цикл, в котором будут отображаться только дети первого уровня пользовательского таксономического термина «гидро» (т.е. – пропустить условия внука), а также постоянную ссылку на их соответствующие страницы архива таксономии.

Я пытался работать с get_terms() в различных воплощениях, но я просто не могу понять это правильно.

Любая помощь приветствуется. Благодаря!

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

Прежде всего вам нужен термин id of hydro term, вы можете получить его с помощью get_term_by

 $hydro = get_term_by('slug', 'hydro', 'product_cat'); 

После этого вы можете использовать термин id как 'parent' аргумент для get_terms

 $hydro_children = get_terms( 'product_cat', array( 'parent' => $hydro->term_id ) ); 

Теперь вы можете отобразить список этих детей:

 if ( ! empty($hydro_children) ) { echo '<ul>'; foreach( $hydro_children as $hydro_child ) { echo '<li><a href="' . get_term_link($hydro_child, 'product_cat') . '">'; echo $hydro_child->name . '</a></li>'; } echo '</ul>'; } 

И / или запустите почтовый запрос для сообщений с прикрепленными параметрами $hydro_children , и если вы хотите, вы можете пропустить сообщения, содержащие только детей из $hydro_children (grand children of 'hydro') благодаря аргументу 'include_children' налогового запроса:

 $args = array( 'post_type' => 'product', // I guess 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => wp_list_pluck($hydro_children, 'term_id'), 'include_children' => false ) ) ); $query = new WP_Query( $args );