$args = array(
'post_type' => 'product',
'posts_per_page' => 100,
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
$args = array(
'post_type' => 'product_variation',
'post_status' => array( 'publish' ),
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'post_parent' => get_the_ID() // get parent post-ID
);
$variations = get_posts( $args );
foreach ( $variations as $variation ) {
// get variation ID
$variation_ID = $variation->ID;
// get variations meta
$product_variation = new WC_Product_Variation( $variation_ID );
// get variation featured image
$variation_image = $product_variation->get_image();
$variation_link = $product_variation->get_permalink();
//get variation name
$variation_name = $product_variation->get_variation_attributes();
$fasovka = [ 'attribute_pa_paint' => $variation_name [ 'attribute_pa_paint'] ];
if (($variation_name[attribute_pa_scale]=="1-24")&&(strpos($variation_image, '_G_1-18') !== false)) {
echo '<a href="'.$variation_link.'">'.$variation_image.'</a><br>';
}
}
endwhile;
wp_reset_query();
此代码显示所有产品变体。
但是现在显示了绘制和未绘制属性值的变化。我只需要输出包含绘制属性值的变体。
怎么做才对?
paint 属性的值是painted 和unpainted
使用
wc_get_productsc 参数type => variable- 这会将您的请求数量减少数倍:为了得到 y
WC_Product(alsoWC_Variation_Product) 的所需属性,有一个方法get_attribute( string $name );但是,最有可能的是,该属性将被称为 pa_painted,因为 标准属性命名以前缀 开头
pa_。至于写你自己的请求,没有意义。除了属性,您还需要产品数据。请求时将检索所有属性数据
wc_get_products。另一件要考虑的事情是极限。如果任务确实需要限制
-1,那么您应该考虑缓存您的请求。例如: