web-dev-qa-db-ja.com

現在のカテゴリアーカイブのサブカテゴリにネストされている商品

archive-product.phpの下のコードを使用してカテゴリアーカイブページでそのサブカテゴリのリストを取得することができますが、現在各サブカテゴリに割り当てられている商品のリストを表示したいです。

<?php
    $parentid = get_queried_object_id();
    $args = array(
        'parent' => $parentid
    );
    $categories = get_terms(
        'product_cat', $args
    );
    if ( $categories ) {
        foreach ( $categories as $category ) {
            echo $category->name;
        }
    }
?>

例:

サブカテゴリ1

  • サブカテゴリ1の商品1
  • サブカテゴリ1の商品2

  • サブカテゴリ2の商品1
  • サブカテゴリ2の商品2

私はまだWordPressを学んでいるので、どんな助けでも非常に高く評価されるでしょう。

1
Kevin S
<?php
    $parentid = get_queried_object_id();
    $args = array(
        'parent' => $parentid
    );
    $categories = get_terms(
        'product_cat', $args
    );
    if ( $categories ) :
        foreach ( $categories as $category ) :
            echo esc_html($category->name);
            $products = new WP_Query( array(
                'post_type' => 'product',
                'tax_query' => array(
                    array(
                        'taxonomy' => 'product_cat',
                        'field' => 'slug',
                        'terms' => $category->slug,
                    ),
                ) 
            ) );
            if ( $products->have_posts() ) :
            ?>
                <ul>
                    <?php while ( $products->have_posts() ) : $products->the_post(); ?>
                        <li><?php the_title(); ?></li>
                    <?php endwhile; ?>
                </ul>
            <?php
                wp_reset_postdata();
            endif;
        endforeach;
    endif;
?>
1