我偶然发现了一个我似乎无法解决的WordPress查询问题。
我有一个名为产品的自定义帖子类型,它有两个字段price
和price_campaign
。有时,price
仅设置,有时仅price_campaign
。我仍然希望我的最终查询按顺序输出所有产品,按price
/ price_campaign
排序,就好像这两个字段是相同的一样。但我似乎无法做到这一点:
$query->set(
'meta_query',
array(
'relation' => 'AND',
'price_campaign' => array(
'key' => 'price_campaign',
'type' => 'NUMERIC',
'compare' => 'EXISTS'
),
'price' => array(
'key' => 'price',
'type' => 'NUMERIC',
'compare' => 'EXISTS'
),
)
);
$query->set(
'orderby',
array(
'meta_value_num' => 'ASC',
'title' => 'ASC'
)
);
但是,我首先会获得设置price
的产品,然后设置price_campaign
设置的所有产品。
如果我将其更改为'relation' => 'OR'
,它们就会以完全随机的顺序排列,价格和标题似乎都不重要。
我真的无法弄清楚问题是什么。有什么想法吗?