Hướng dẫn phân trang sản phẩm bằng shortcode page woocomere

Hướng dẫn phân trang sản phẩm bằng shortcode trong Woocommerce

Đầu tiên các bạn copy code dưới đây vào file function.php ở theme 

/*
Chức năng: hiển thị phân trang cho sản phẩm WooCommerce khi dùng shortcode riêng lẻ
*/
if ( ! is_admin() ) {
// ---------------------- FRONTPAGE -------------------
if ( defined('WC_VERSION') ) {
// ---------------------- WooCommerce active -------------------
    /**
 * Set Pagination for shortcodes custom loop on single-pages.
   * @uses $woocommerce_loop;
   */
   add_action( 'pre_get_posts', 'kli_wc_pre_get_posts_query' ); 
   function kli_wc_pre_get_posts_query( $query ) {
   global $woocommerce_loop;
    // Get paged from main query only
    // ! frontpage missing the post_type
    if ( is_main_query() && ( $query->query['post_type'] == 'product' ) || ! isset( $query->query['post_type'] ) ){
   if ( isset($query->query['paged']) ){
   $woocommerce_loop['paged'] = $query->query['paged'];
   }
    }
   if ( ! $query->is_post_type_archive || $query->query['post_type'] !== 'product' ){
    return;
    }
   $query->is_paged = true;
   $query->query['paged'] = $woocommerce_loop['paged'];
   $query->query_vars['paged'] = $woocommerce_loop['paged'];
   }
 /** Prepare Pagination data for shortcodes on pages
   * @uses $woocommerce_loop;
 **/
 add_action( 'loop_end', 'kli_query_loop_end' ); 
 function kli_query_loop_end( $query ) {
 if ( ! $query->is_post_type_archive || $query->query['post_type'] !== 'product' ){
 return;
 }
 // Cache data for pagination
 global $woocommerce_loop;
 $woocommerce_loop['pagination']['paged'] = $woocommerce_loop['paged'];
 $woocommerce_loop['pagination']['found_posts'] = $query->found_posts;
 $woocommerce_loop['pagination']['max_num_pages'] = $query->max_num_pages;
 $woocommerce_loop['pagination']['post_count'] = $query->post_count;
 $woocommerce_loop['pagination']['current_post'] = $query->current_post;
 }
 /**
 * Pagination for shortcodes on single-pages 
 * @uses $woocommerce_loop;
 */
 add_action( 'woocommerce_after_template_part', 'kli_wc_shortcode_pagination' ); 
 function kli_wc_shortcode_pagination( $template_name ) {
 if ( ! ( $template_name === 'loop/loop-end.php' && is_page() ) ){
 return;
 }
 global $wp_query, $woocommerce_loop;
 if ( ! isset( $woocommerce_loop['pagination'] ) ){
 return;
 }
 $wp_query->query_vars['paged'] = $woocommerce_loop['pagination']['paged'];
 $wp_query->query['paged'] = $woocommerce_loop['pagination']['paged'];
 $wp_query->max_num_pages = $woocommerce_loop['pagination']['max_num_pages'];
 $wp_query->found_posts = $woocommerce_loop['pagination']['found_posts'];
 $wp_query->post_count = $woocommerce_loop['pagination']['post_count'];
 $wp_query->current_post = $woocommerce_loop['pagination']['current_post'];
 // Custom pagination function or default woocommerce_pagination()
 kli_woocommerce_pagination();
 } 
 /**
 * Custom pagination for WooCommerce instead the default woocommerce_pagination()
 * @uses plugin Prime Strategy Page Navi, but added is_singular() on #line16
 **/
 remove_action('woocommerce_after_shop_loop', 'woocommerce_pagination', 10);
 add_action( 'woocommerce_after_shop_loop', 'kli_woocommerce_pagination', 10);
 function kli_woocommerce_pagination() {
 woocommerce_pagination(); 
 }
}/*woocommerce*/
}/*frontpage*/

Xem Thêm : Top 10 những framework date time html thường được sử dụng

Chép đoạn code dưới đây vào trang mà bạn muốn hiển thị sản phẩm theo chuyên mục. Đặc biệt là phân trang sản phẩm

[product_category category="can-ho" paged=”1″ columns="3" orderby="default" order="DESC" operator="IN" paginate="true" limit="6"]

Các bạn để ý các tham số sau:
Category: đường dẫn danh mục sản phẩm muốn hiển thị
Paged =”1″ hiển thị trang đầu tiên
Columns = “3” số sản phẩm muốn hiển thị
Paginate = “true” hiển thị phân trang
Limit = “6” số sản phẩm hiển thị trên 1 trang
Nếu thấy bài viết bổ ích hãy like và share để ủng hộ mình ra nhiều bài viết bổ ích hơn nhé

Nguồn: https://vncode.info
Danh mục: Thủ Thuật Chia Sẻ Hay

Related Posts

Code hiệu ứng icon twitter hoạt động khi hover

Có thể bạn quan tâm Hướng dẫn tạo Line Chart thật dễ dàng với Chartjs Chia sẻ giao diện shop bán đồ trẻ em nukeviet Bật mí…

Hướng dẫn tạo Line Chart thật dễ dàng với Chartjs

ChartJS là gì? Chart.js là một thư viện mã nguồn mở hỗ trợ các loại biểu đồ: bar, line, area, pie (doughnut), radar, polar… ChartJS mặc định là…

Code Pháo hoa Javacript

Có thể bạn quan tâm Hướng dẫn cấu hình chức năng gửi mail server nukeviet Hướng dẫn tạo hiệu ứng tuyết rơi canvas html5 Top 10 những…

Hiệu ứng slider nhấp đôi miễn phí

Có thể bạn quan tâm Bật mí bạn cách nhận gói Canva Pro miễn phí trọn đời Xây dựng trình chỉnh sửa hình ảnh trong HTML CSS…

Top 10 những framework date time html thường được sử dụng

Có thể bạn quan tâm Hướng dẫn copy chữ trong ảnh trên web bằng điện thoại nhanh, gọn, lẹ nhất Code hiệu ứng icon twitter hoạt động…

Bật mí bạn cách nhận gói Canva Pro miễn phí trọn đời

Có thể bạn quan tâm Hướng dẫn thu gọn nội dung chi tiết sản phẩm và mô tả danh mục cho theme Flatsome wordpress Giấy phép Reezaa…