我正在尝试按价格对我的产品进行排序,但它不能正常工作,它只返回我的56种产品中的9种。我的所有产品都是类似产品,都是具有变化和属性的产品,所以我不知道它为什么会发生。
这是我获取产品的代码,如果我不使用“orderby”,它可以正常工作。
$args = [
"posts_per_page" => 20,
"paged"=> "1",
"tax_query" => [
[
"taxonomy" => "product_cat",
"field" => "term_id",
"terms" => "213",
"operator" => "IN",
"include_children" => false
],
[
"taxonomy" => "pa_color",
"field" => "term_id",
"terms" => [
"red"
],
"operator" => "IN"
],
"relation" => "AND"
],
"post_type" => [
"product",
"product_variation"
],
"meta_query" => [
[
"key" => "_price",
"value" => [
"20",
"30"
],
"compare" => "BETWEEN",
"type" => "NUMERIC"
],
"relation" => "AND"
],
"orderby" => "meta_value_num",
"meta_key" => "_price",
"order" => "ASC"
]
$loop = new WP_Query( $args );
答案 0 :(得分:0)
1)关于产品差异:
产品类别或产品标记的Woocommerce自定义分类在产品版本中未启用,但在父级中可变产品。
产品属性 (针对变体)无法通过税务查询获得。对于产品变体,它们设置为元数据,如attribute_pa_color
(所有按键以attribute_
开头),值为每个的一个术语slug
因此,您无法使查询适用于product
和product_variation
这两种帖子。
注意:默认情况下,产品不会在产品循环中显示产品变体 。它们仅显示在购物车商品和订单商品中
2)关于可变产品:
_prices
),因为它有变化。因此,查询元键_prices
会产生错误,因为第一个可用的价格将被采用(或者可能全部或全部都没有)。 注意:默认情况下,产品循环中会显示变量产品,但它们永远不会显示在购物车商品和订单商品中。
出于所有原因,即使有或没有
"orderby" => "meta_value_num",
,您的查询也无法正常运作。
您的查询中也存在一些错误或错误,例如:
tax_query
中"taxonomy" => "pa_color",
"field"
需要"slug"
而不是"term_id"
。'post_status' => 'publish',
缺失。"operator" => "IN"
,"relation" => "AND"
不需要,因为它们是默认参数。 所以这并没有解决你的问题,但是告诉你这是不可能的。