2017-12-28 28 views
1

Woocommerce 샵의 메인 샵 페이지 (archive-product.php)에서 모든 제품을 표시 할 수 있지만 카테고리별로 구분할 수 있기를 바랍니다. 그래서 각 제품 범주에 대한 루프를 생성 할 수 있어야합니다. 시각적 참고로 Woocommerce 각 카테고리의 별도 제품 루프

이 내가 달성하기 위해 노력하고있어입니다 : for reference

각각의 회색 블록은 해당 범주의 제품을 통해 새로운 카테고리와 의지 루프를 나타냅니다.

이 방법이 있습니까?

+0

당신은 또한 매김을 필요로하지 마십시오? – Amin

+0

상점 페이지에 필요한 페이지 번호가 지정되지 않아 모든 제품이 표시됩니다. –

답변

0

글쎄, 당신이 코멘트에서 언급했듯이, 어떤 페이지 매김이 필요 없다면, 카테고리로 이끄는 모든 제품을 나열하기 위해 먼저 get_terms() 함수를 사용하여 카테고리를 반복하고 각 반복마다 필요한 정보를 얻으십시오. : 카테고리 이름은) 다음 카테고리 당 하나 개의 사용자 지정 쿼리를 작성하고 쿼리의 제품을 보여이 같은 당신이 뭘 하려는지을 얻을 것이다 :

<?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 } 
 
}