我有一个自定义的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;
答案 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();