如何在循环中显示每个产品的产品变体,例如商店页面上的产品?是否有任何功能可以添加到content-product
模板中,以检索变体列表并显示它们?
答案 0 :(得分:3)
您可以使用此代码将商品变体添加到商店/产品类别循环
// Load our function when hook is set
add_action( 'pre_get_posts', 'custom_modify_query_get_posts_by_date' );
// Modify the current query
function custom_modify_query_get_posts_by_date( $query ) {
// Check if on frontend and main query is modified and if its shop or product category loop
if( (! is_admin() && $query->is_main_query()) && ( is_shop() || is_product_category() ) ) {
$query->set( 'order', 'ASC' );
add_filter( 'posts_where', 'rc_filter_where' );
}
return $query;
}
// Add products variation post type to the loop
function rc_filter_where( $where = '' ) {
$type = 'product_variation';
$where .= " OR post_type = '$type'";
return $where;
}
答案 1 :(得分:1)
最好的方法是改变循环。这样的事情会有所帮助:
function filter_wc_query($query_args){
if(is_archive()){ //here you can use any conditional function to show variations on
$query_args[] = ['post_parent'=> '*'];
}
return $query_args;
}
add_filter('woocommerce_get_query_vars','filter_wc_query');
或者如果你想在视图级别上这样做: https://gist.github.com/lukecav/2470d9fe6337e13da4faae2f6d5fe15f
在此解决方案图像中,您可以通过标准WP功能获取:
get_post_thumbnail($product->ID,'shop_list');
但请记住,变体链接会将用户带到父产品并迫使他再次选择变体。