WordPress 查询参数如果两个值那么



也许这是一个非常愚蠢的问题,但我无法理解它。当我阅读代码时,它是有意义的,它做了它所做的事情,但我不知道如何更改它才能正常工作。这是查询:

return array(
'post_type' => 'page',
'post_status' => 'publish',
'meta_query' => array(
'is_featured' => array(
'key' => 'featured',
'compare' => 'EXISTS'
),
array(
'key'       => 'pakket-of-dienst',
'value'     => array('vps hosting'),
'compare'   => 'IN',
),
),
'orderby' => array(
'is_featured' => 'DESC'
)
);

它选择所有具有"vps hosting"值的页面,当存在具有键"精选"的页面时,它也将显示此页面。

问题是有多个 pakket-of-dienst 值。

如何进行查询以仅选择pakket-of-dienst为"vps托管"且精选值为0或1的页面?

现在的问题是,当 pakket-of-dienst 是"vps hosting"时,他还显示 pakket-of-dienst 的特色页面是"webhosting"。

任何人?

你能试试这个:

return [
'post_type'   => 'page',
'post_status' => 'publish',
'meta_query'  => [
'relation' => 'AND',
[
'relation' => 'OR',
[
'key'   => 'featured',
'value' => 1
],
[
'key'   => 'featured',
'value' => 0
]
],
[
'key'   => 'pakket-of-dienst',
'value' => 'vps hosting', //no need "in" as you check against one value only
],
],
'orderby'     => [
'is_featured' => 'DESC'
]
];

注意:我倾向于避免使用"EXIST"运算符(用于meta_query或tax_query(,并且更喜欢在ID或键/值上使用"IN"。我有时会使用它有"意想不到"的结果。

最新更新