如何在WooCommerce中以随机顺序获取所有产品的变体

时间:2017-01-23 07:27:36

标签: wordpress woocommerce

我有一个WooCommerce商店,其中包含可变产品,我想展示所有产品及其变体产品以及商店页面。 我的代码如下:

$params = array('posts_per_page' => 2, 'post_type' => 'product', 'orderby' => 'rand');

$wc_query = new WP_Query($params);
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

query_posts(array(
    'post_type'      => 'product',
    'paged'          => $paged,
    'posts_per_page' => 2,
    'orderby' => 'rand'
));

if (have_posts()) : 
while (have_posts()) : the_post();
echo '<h2>'.the_title.'</h2>';
if ($product->is_type( 'variable' )) 
{
    $available_variations = $product->get_available_variations();
    foreach ($available_variations as $key => $value){
        if($value['variation_is_active']==1){
            // varible products details
        }
    }
}
endwhile; 
  the_posts_pagination();
  wp_reset_postdata();
else:
  echo 'No Products';
endif:

//我正在获得产品但只是随机化主要产品而非变异

请帮帮我。 提前致谢

1 个答案:

答案 0 :(得分:0)

  

要获得变量产品,您必须使用product_variation   post_type密钥。

因此,您的$paramsquery_posts应如下所示:

$params = array(
    'posts_per_page' => 2,
    'post_type' => array('product', 'product_variation'), // <-- check this line.
    'orderby' =>
    'rand'
);
//...
//...
query_posts(array(
    'post_type' => array('product', 'product_variation'), // <-- check this line.
    'paged' => $paged,
    'posts_per_page' => 2,
    'orderby' => 'rand'
    )
);

参考:Get List of All WooCommerce Products

希望这有帮助!