2014-09-23 68 views
2

我正在開發一個安裝了Woocommerce插件的網站。我希望我的商店頁面首先顯示類別名稱&然後顯示該類別中的產品,然後顯示下一個類別名稱及其具有的產品。 ScreenshotWoocomerce商店頁面顯示該類別中的類別名稱和展示產品

已經在谷歌搜索google &這裏找到了解決方案,但它不是我想要的。它在每個產品的價格區域之後添加了類別名稱。我不是專業人士,所以有一個困難的時間來解決這個問題。

function wc_category_title_archive_products(){ 

    $product_cats = wp_get_post_terms(get_the_ID(), 'product_cat'); 

    if ($product_cats && ! is_wp_error ($product_cats)){ 

     $single_cat = array_shift($product_cats); ?> 

     <small class="product_category_title"><?php echo $single_cat->name; ?></small> 

<?php } 
} 
add_action('woocommerce_after_shop_loop_item', 'wc_category_title_archive_products', 5); 

回答

0

你將不得不爲每個類別做一個新的循環/查詢。我們可以通過使用WordPress的get_categories函數來自動化一些過程。這裏有一個例子::

<?php  
    $cat_args = array(
     'parent' => '0', 
     'taxonomy' => 'product_cat' 
    ); 
    $categories = get_categories($cat_args); 

    foreach ($categories as $category) { ?>  
     <ul class="product-category"> 
      <?php 
       $args = array('post_type' => 'product', 'posts_per_page' => 1, 'cat' => $category->cat_ID, 'orderby' => 'rand'); 
       $loop = new WP_Query($args); 
       while ($loop->have_posts()) : $loop->the_post(); global $product; ?> 

        <!-- Your output --> 

      <?php endwhile; ?> 
      <?php wp_reset_query(); ?> 
     </ul> 
    } 
?> 
+0

,但不靈活,我不得不改變我的模板,每次我添加一個新的類別。 – 2014-09-23 07:40:38

+0

您可以隨時使用[get_categories](http://codex.wordpress.org/Function_Reference/get_categories)功能獲取所有類別。在那之後,你可以通過所有的「foreach」循環。這將是靈活的。如果你不明白,我會更新我的答案。 – rnevius 2014-09-23 08:16:46

+0

是的,請更新它。我不擅長php。感謝您的辛勤工作。 – 2014-09-23 08:43:28

0
<?php  
    $cat_args = array(
     'parent' => '0', 
     'taxonomy' => 'product_cat' 
    ); 
    $categories = get_categories($cat_args); 

    foreach ($categories as $category) { 
     echo $category->cat_name; 
     echo do_shortcode('[product_category category="'.$category->cat_name.'" per_page="12" columns="4" orderby="date" order="DESC"]'); 
    } 
?> 
+0

將此代碼添加到/your-child-theme/woocommerce/templates/archive-product.php – proff 2016-08-10 22:22:09

相關問題