Кастомный related loop выводит один и тот же товар

Цель: сделать вывод рекомендаций, по одному товару из каждой родительской категории последовательно, отфильтровав их по атрибуту, например по цвету.

У меня 4 родительские категории, но почему то функция всегда выдает один и тот же товар из одной категории 4 раза. Не могу понять что сделал не так.

function related_list() {

    global $product;

    $categories = get_terms( array( 'taxonomy' => 'product_cat' , 'parent' => 0, 'fields' => 'ids') );
    $thiscolor = wc_get_product_terms( $product->id, 'pa_color', array( 'fields' => 'slugs' ) );
    $loop = new WP_Query;

    foreach ( $categories as $category ) :
    $loop->query( array(
            'product_cat' => $category->term_id,
            'post_type' => 'product',
            'posts_per_page' => 1,
            'fields' => 'ids',
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'pa_color',
                    'field'    => 'slug',
                    'terms'    => $thiscolor,
                    'operator' => 'AND'
                )
            )
    ));

    if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                    woocommerce_get_template_part( 'content', 'product' );
            endwhile;
    } else {
            echo __( 'No products found' );
    }

    wp_reset_postdata(); 
    endforeach;
}

Ответы (0 шт):