[WooCommerce] Nhóm sản phẩm theo danh mục

by admincp
39 Xem

Ở bài trước, mình đã chỉ cho bạn làm sao hiển thị các danh mục con trong trang danh mục sản phẩm WooCommerce. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách hiển thị tất cả các sản phẩm được nhóm theo danh mục của chúng. Để thực hiện, bạn thêm đoạn code sau vào functions.php

<?php

                $args = array(

   'number'     => $number,

   'orderby'   => 'title',

   'order'     => 'ASC',

   'hide_empty' => $hide_empty,

   'include'   => $ids

);

$product_categories = get_terms( 'product_cat', $args );

$count = count($product_categories);

if ( $count > 0 ){

   foreach ( $product_categories as $product_category ) {

       echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';

       $args = array(

           'posts_per_page' => -1,

           'tax_query' => array(

              'relation' => 'AND',

               array(

                   'taxonomy' => 'product_cat',

                   'field' => 'slug',

                   // 'terms' => 'white-wines'

                   'terms' => $product_category->slug

                )

           ),

           'post_type' => 'product',

           'orderby' => 'title,'

       );

       $products = new WP_Query( $args );

       echo "<ul>";

       while ( $products->have_posts() ) {

           $products->the_post();

           ?>

               <li>

                   <a href="<?php the_permalink(); ?>">

                       <?php the_title(); ?>

                   </a>

               </li>

           <?php

       }

       echo "</ul>";

   }

}

?>

Trước hết, để nhóm các sản phẩm theo thứ tự danh mục bạn hãy vào phần danh mục và thêm một số danh mục. Tiếp đó, bạn thêm một vài sản phẩm đại diện và gán vào danh mục vừa mới tạo.

Bạn tạo một file template mới trong giao diện WordPress của mình. VD mình tạo tệp custom.php và chèn vào nội dung như dưới đây:

<?php

/**

* Template Name: Product Listing

*

* @package WordPress

* @subpackage Twenty_Fourteen

* @since Twenty Fourteen 1.0

*/

 

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

 

get_header( 'shop' ); ?>

<div id="main-content" class="main-content">

<div id="primary" class="content-area">

                                <div id="content" class="site-content" role="main">

<?php

                $args = array(

   'number'     => $number,

   'orderby'   => 'title',

   'order'     => 'ASC',

   'hide_empty' => $hide_empty,

   'include'   => $ids

);

$product_categories = get_terms( 'product_cat', $args );

$count = count($product_categories);

if ( $count > 0 ){

   foreach ( $product_categories as $product_category ) {

       echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';

       $args = array(

           'posts_per_page' => -1,

           'tax_query' => array(

               'relation' => 'AND',

               array(

                   'taxonomy' => 'product_cat',

                   'field' => 'slug',

                   // 'terms' => 'white-wines'

                   'terms' => $product_category->slug

               )

           ),

            'post_type' => 'product',

           'orderby' => 'title,'

       );

       $products = new WP_Query( $args );

       echo "<ul>";

       while ( $products->have_posts() ) {

           $products->the_post();

           ?>

               <li>

                    <a href="<?php the_permalink(); ?>">

                       <?php the_title(); ?>

                   </a>

               </li>

           <?php

       }

       echo "</ul>";

   }

}

?>

</div>

</div>

</div>

<?php get_footer( 'shop' ); ?>

Bây giờ hãy vào phần trang và thêm một trang mới. Khi bạn thêm một trang mới, bạn sẽ thấy mẫu template mới được tạo của mình trong hộp lựa chọn mẫu trang, hãy chọn template vừa tạo có tên là “danh sách sản phẩm” và lưu lại.

Bây giờ hãy mở trang web và chuyển đến trang mới được tạo. Bạn sẽ thấy tất cả các sản phẩm được nhóm theo danh mục được chỉ định của chúng, kiểu giống như thế này nhé.

Chúc bạn thành công.

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

Bài viết liên quan

Leave a Comment