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

Thứ ba - 31/08/2021 09:38
VNCODE xin chia sẽ đến các bạn cách phân trang sản phẩm woocomere bằng shortcode wordpress ,... hôm nay mình đang làm một web bán hàng, yêu cầu là phải hiển thị sản phẩm hiển thị làm trang chủ trang chủ và đặc biệt phải phân trang. Yes, phải phân trang .Vấn đề đặt ra khi mình thêm shortcode này:

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*/
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é

Tác giả: admin, Đắc lợi

 Tags: wordpress

Tổng số điểm của bài viết là: 15 trong 3 đánh giá

Xếp hạng: 5 - 3 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây