WooCommerce:显示循环内的产品变化

时间:2017-11-05 12:01:56

标签: php wordpress woocommerce

如何在循环中显示每个产品的产品变体,例如商店页面上的产品?是否有任何功能可以添加到content-product模板中,以检索变体列表并显示它们?

2 个答案:

答案 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');

但请记住,变体链接会将用户带到父产品并迫使他再次选择变体。