我正在尝试使用数组中的值执行 WP 查询以排除某些行。
我有一个事件表,其中的 event_status 字段的类型为“单选按钮”设置,如下所示。
0 : Provisional
1 : Active
2 : Postponed
3 : Cancelled
我将返回值设置为两者。
因此,当我使用
get_field('event_status')
时,我会返回以下内容。
[24-Nov-2024 14:35:27 UTC] {"value":"0","label":"Provisional"}
我想要做的是仅查询标签不是临时标签的行。
目前查询的是
$events = new WP_Query(Array(
'posts_per_page' => 3,
'post_type' => "event",
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
'date_clause' => array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today->format('Ymd'),
'type' => 'DATE',
),
'status_clause' => array(
'key' => 'event_status',
'compare' => '!=',
'value' => 'Provisional'
)
)
));
我知道这是不正确的。 我已经在网上搜索过,但找不到任何特定的内容来允许使用数组元素(即“标签”==“临时”)基于返回数组内的值进行搜索
有谁可以帮忙吗?
您可以只查询不等于0(值)的值而不是标签(临时)
$events = new WP_Query(array(
'posts_per_page' => 3,
'post_type' => "event",
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
'date_clause' => array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today->format('Ymd'),
'type' => 'DATE',
),
'status_clause' => array(
'key' => 'event_status',
'compare' => '!=',
'value' => '0' // Looking for the value, not the label
)
)));
我在没有 date_clause 的情况下进行了本地测试,因为我没有添加 event_date 字段并且它工作正常。