2017-12-28 10 views
1

私のWoocommerceショップのメインショップページ(archive-product.php)で、すべての製品を表示できますが、カテゴリー別に分けたいと考えています。だから、私は各製品カテゴリのためのループを作成することができる必要があります。視覚的な参考Woocommerce各カテゴリの個別製品ループ

、これは私が達成しようとしているものです:for reference

各灰色のブロックはそのカテゴリの製品を通じて、新しいカテゴリと意志ループを表します。

これを達成する方法はありますか?

+0

あなたはまた、改ページを必要としたりしないでください? – Amin

+0

ショップページにはすべての商品が表示されるため、ページ番号は必要ありません。 –

答えて

0

あなたがコメントで言及したように、ページ分類が必要ない場合は、カテゴリ別のすべての製品を一覧表示するには、まずget_terms()機能を使用してカテゴリをループし、各繰り返しで必要な情報を取得します。 :カテゴリ名)は、その後、カテゴリごとに1つのカスタムクエリを作成し、クエリの製品を示し、このようなものは、あなたが何をしようとしてあなたを取得します:

<?php 
foreach(get_terms(array('taxonomy' => 'product_cat')) as $category) : 
    $products_loop = new WP_Query(array(
     'post_type' => 'product', 

     'showposts' => -1, 

     'tax_query' => array_merge(array(
      'relation' => 'AND', 
      array(
       'taxonomy' => 'product_cat', 
       'terms' => array($category->term_id), 
       'field' => 'term_id' 
      ) 
     ), WC()->query->get_tax_query()), 

     'meta_query' => array_merge(array(

      // You can optionally add extra meta queries here 

     ), WC()->query->get_meta_query()) 
    )); 

?> 
    <h2 class="category-title"><?php echo $category->name; ?></h2> 

    <?php 
    while ($products_loop->have_posts()) { 
     $products_loop->the_post(); 
     /** 
     * woocommerce_shop_loop hook. 
     * 
     * @hooked WC_Structured_Data::generate_product_data() - 10 
     */ 
     do_action('woocommerce_shop_loop'); 
     wc_get_template_part('content', 'product'); 
    } 
    wp_reset_postdata(); ?> 
<?php endforeach; ?> 
+0

これは完全に機能しました!どうもありがとう! –

+0

@key_bearerあなたは大歓迎です:) – Amin

0

ページのテンプレートにこのコードを試してみてください。それぞれのカテゴリーのWoocommerce Separate Product Loopsの結果が得られます。

$taxonomy  = 'product_cat'; 
 
    $orderby  = 'name'; 
 
    $show_count = 0;  // 1 for yes, 0 for no 
 
    $pad_counts = 0;  // 1 for yes, 0 for no 
 
    $hierarchical = 1;  // 1 for yes, 0 for no 
 
    $title  = ''; 
 
    $empty  = 0; 
 

 
    $args = array(
 
     'taxonomy'  => $taxonomy, 
 
     'orderby'  => $orderby, 
 
     'show_count' => $show_count, 
 
     'pad_counts' => $pad_counts, 
 
     'hierarchical' => $hierarchical, 
 
     'title_li'  => $title, 
 
     'hide_empty' => $empty 
 
); 
 
$all_categories = get_categories($args); 
 
foreach ($all_categories as $cat) { 
 
    if($cat->category_parent == 0) { 
 
     $category_id = $cat->term_id;  
 
     echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>'; 
 
\t \t 
 
\t \t 
 
\t //get product 
 
\t \t $args = array(
 
    'post_type'  => 'product', 
 
\t 'product_cat' => $cat->name, 
 
    'posts_per_page' => $count, 
 
    'paged'   => $paged, 
 
); 
 
$query = new WP_Query($args); 
 

 
if ($query->have_posts()) { 
 
    while ($query->have_posts()) { 
 
    $query->the_post(); 
 
     ?> 
 
\t \t <span class="title"><h2> <?php the_title(); ?> </h2></span> 
 
     \t <?php 
 
    } 
 
    wp_reset_postdata(); 
 
} 
 

 
\t } 
 
}

関連する問題