自定义目录列表的某些循环出现问题。
目标:在目录页面上列出了简单产品和某些变体产品(取决于属性);
我使用类型为 array('simple','variation')的 wc_get_products 创建了一个自定义产品循环,但是属性过滤器(例如大小或颜色)无法使用此清单。
这是代码:
$category = get_queried_object();
$currentCat = "";
if ( $category->slug != NULL ){
$currentCat = array($category->slug);
}
$paged = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1;
$ordering = WC()->query->get_catalog_ordering_args();
$ordering['orderby'] = array_shift(explode(' ',$ordering['orderby']));
$ordering['orderby'] = stristr($ordering['orderby'],'price') ? 'meta_value_num' : $ordering['orderby'];
$products_per_page = apply_filters('loop_shop_per_page',wc_get_default_products_per_row() * wc_get_default_product_rows_per_page());
$list_products = wc_get_products(array(
'meta_key' => '_price','status' => 'publish','category' => $currentCat,'type' => array('simple','variation'),'limit' => $products_per_page,'page' => $paged,'paginate' => true,'return' => 'ids','orderby' => $ordering['orderby'],'order' => $ordering['order'],));
$totalProducts = (array) $list_products->products;
wc_set_loop_prop('current_page',$paged);
wc_set_loop_prop('is_paginated',wc_string_to_bool(true));
wc_set_loop_prop('page_template',get_page_template_slug());
wc_set_loop_prop('per_page',$products_per_page);
wc_set_loop_prop('total',$list_products->total);
wc_set_loop_prop('total_pages',$list_products->max_num_pages);
if($totalProducts) {
do_action('woocommerce_before_shop_loop');
woocommerce_product_loop_start();
foreach($totalProducts as $productID) {
$post_object = get_post($productID);
setup_postdata($GLOBALS['post'] =& $post_object);
wc_get_template_part('content','product');
}
wp_reset_postdata();
woocommerce_product_loop_end();
do_action('woocommerce_after_shop_loop');
} else {
do_action('woocommerce_no_products_found');
}
任何人都可以帮我,以便过滤器开始工作?