Я нашел хороший код (показан ниже) с этого сайта .
Он отлично работает, но мне нужно получить определенную категорию детей по идентификатору. Например, если выход из кода:
Красный Синий Зеленый Желтый
Как получить только Зеленый, потому что мне нужно сделать другой запрос, чтобы использовать его в
'tax_query'=>array('field'=>'id')
Вот функция:
//woocommerce get sub categories from parent id function woocommerce_subcats_from_parentcat_by_ID($parent_cat_ID) { $args = array( 'hierarchical' => 1, 'show_option_none' => '', 'hide_empty' => 0, 'parent' => $parent_cat_ID, 'taxonomy' => 'product_cat' ); $subcats = get_categories($args); foreach ($subcats as $sc) { $link = get_term_link( $sc->slug, $sc->taxonomy ); echo $sc->name.'</br>'; } }
Вот код, где я должен получить конкретный идентификатор категории:
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { global $product; $product = $cart_item['data']; if ( has_term( 'phone-model', 'product_cat', $product->id ) ) { $cat_check = true; $term_list = wp_get_post_terms( $product->id,'product_cat',array('fields'=>'ids')); $cat_id = (int)$term_list[0]; $funspecificsub = woocommerce_subcats_from_parentcat_by_ID($cat_id); $args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'id', //This is optional, as it defaults to 'term_id' 'terms' => $funspecificsub, 'include_children' =>true ) ) ); $loop = new WP_Query( $args ); $i=1; while ( $loop->have_posts() ) : $loop->the_post(); global $product; if($product->is_visible()){ echo '<li style=">'; echo '<a id="cover_'.$i.'" class=" '.$product->id.'" >'; echo '<div class="">'.get_site_url().'/?add-to-cart='.$product->id.'</div>'; echo '<h5>'.get_the_title().'</h5>'; echo '<h6>'.wc_price($product->get_price_including_tax(1,$product->get_price())).'</h6>'; echo '</a>'; echo '</li>'; }else{} $i++; endwhile; wp_reset_query(); } }
Поэтому, я думаю, главный вопрос заключается в том, как я могу получить идентификатор категории «Зеленый» в переменной $ funspecificsub выше. На данный момент он выводит все подкатегории. Я хочу иметь возможность выбирать определенную подкатегорию.