我有一个产品列表,目前我正在实现各种过滤器功能。
每个产品都有 12 个变体,每个变体都有不同的价格。
每个产品都有定义为默认的“最便宜”变体(通过产品的默认属性属性)
我想调整pre_get_posts 操作中的 wordpress 查询以仅匹配最高和最低价格之间的产品-但是,查看 postmeta 我发现对于产品的每个变体都有一个条目-例如
product_id: 10, _price: 100 (-> default variation)
product_id: 10, _price: 110
product_id: 10, _price: 120
product_id: 11, _price: 110 (-> default variation)
product_id: 11, _price: 120
product_id: 11, _price: 130
……
如果我做这样的事情:
$currentMetaQuery = $query->get('meta_query');
$currentMetaQuery[] = [
'key' => '_price',
'value' => array($minMax['min'], $minMax['max']),
'type' => 'numeric',
'compare' => 'BETWEEN'
];
$query->set('meta_query', $currentMetaQuery);
最小 110 和最大 200 我得到 ID 为 10 和 11 的产品(因为这两种产品都包含与过滤器查询匹配的变体)
hower: 我希望默认变体成为过滤含义的基础 -> 上面的查询应该只返回 ID 为 11 的产品。
所以查询实际上应该是这样的: 将查询限制在产品默认变体的价格在最小值和最大值之间的产品......
有人知道怎么做吗?
感谢您可以向我展示的任何输入或解决方案!