Чтобы показать только 1 дочерний элемент от родителя, просто используйте array_slice ().
foreach(array_slice($terms_post, 0, 1) as $term_cat ) {
$term_cat_id = $term_cat->term_id;
$category_url = get_term_link( $term_cat_id, 'product_cat', true );
$thumbnail_id = get_woocommerce_term_meta($term_cat_id, 'thumbnail_id', true );
$image_url = wp_get_attachment_url( $thumbnail_id );
echo '<a href="'. $category_url .'"><img src="' . $image_url . '" alt="" width="50" height="50"></a>';
}
Дайте мне знать, если это работает.
РЕДАКТИРОВАНИЕ:
Используйте приведенный ниже код для получения дочерних категорий, используя слаг для родительской категории.
<?php
global $post;
$category_id = get_term_by('slug', 'PARENT-CAT-SLUG', 'product_cat');
$terms = get_the_terms($post->ID, 'product_cat');
foreach ($terms as $term) {
if($term->parent === $category_id->term_id) { ?>
<span class="product-sub-cats"><?php echo $term->name; ?></span>
<?php break;
}
}
?>
Замените "PARENT-CAT-SLUG" на слаг из вашей родительской категории.