WooCommerce分页+ Ajax WP_Query

时间:2018-06-19 06:34:30

标签: php ajax wordpress woocommerce

我有一个自定义的Wordpress小部件,允许用户通过属性(自定义分类法)过滤产品。

这一切都是通过Ajax调用发生的,但我无法根据过滤结果保持最新分页。

例如:

如果页面加载30个产品,则10个页面= 3页结果。

用户然后按属性过滤,将30个产品减少到20.我需要将分页更改为仅2页的结果。

以下是取代默认网页内容的WP_Query示例。您可以看到woocommerce_pagination()似乎无法在此环境中使用。

// Args
$args = array(
    'post_type' => 'product',
    'posts_per_page' => 10,
    'orderby' => 'name',
    'order' => 'ASC',
    'tax_query' => $tax_query
);

$query = new WP_Query( $args );

if( $query->have_posts() ) :
    woocommerce_product_loop_start();
    while( $query->have_posts() ): $query->the_post();
        wc_get_template_part( 'content', 'product' );
    endwhile;
    woocommerce_product_loop_end();

    // TODO - get pagination working
    woocommerce_pagination();

    wp_reset_postdata();
else :
    echo '<p>No products found</p>';
endif;

1 个答案:

答案 0 :(得分:1)

WooCommerce分页基于全局$ wp_query变量。但是您使用自己的$ query变量。这就是为什么它显然无法正常工作的原因。

您有2种方法,首先使用query_posts而不是WP_QUERY类。第二种方式是小黑客,你可以欺骗$ wp_query分页参数。

这是:

 global $wp_query;
  $wp_query->max_num_pages=$query->max_num_pages;
  // TODO - get pagination working
  woocommerce_pagination();