创建变体后,wp_term_relationships表不会使用变体id/object_id和属性term id/term_taxonomy_id进行更新因此,我无法对product_variation执行tax_query。
我的税务查询示例:
$query_args = array(
‘post_type’ => ‘product_variation’,
‘post_status’ => ‘publish’,
‘posts_per_page’ => $attributes[‘limit’],
‘tax_query’ => array(
array(
‘taxonomy’ => ‘pa_purchase-as’,
‘field’ => ‘slug’,
‘terms’ => array(‘mirror’),
),
)
);
注:然而,这些属性被完美地保存为变体,我可以通过get_attributes((获得它们。它必须将属性保存为wp_post_meta中的JSON。
现在,Wooccommerce不将变体属性存储在term_relationships表中,而是将属性值存储在元键"attribute_your_att_slug"中。
在我的情况下,该值存储为元密钥"attribute_pa_purchase-as"。
因此,如果你想获得基于属性的变化,你可以使用元查询而不是tax_query来获得结果,就像我在下面的例子中使用的那样:
$query_args = array(
‘post_type’ => ‘product_variation’,
‘post_status’ => ‘publish’,
‘posts_per_page’ => $attributes[‘limit’],
'meta_query' => array(
array(
'key' => 'attribute_'.trim($attributes['attribute']),
'value' => $terms,
'compare' => 'IN',
)
)
);
希望这能帮助到别人。:(