WP_Query 基于元字段数组中的值

问题描述 投票:0回答:1

我正在尝试使用数组中的值执行 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'
        )
    )
));

我知道这是不正确的。 我已经在网上搜索过,但找不到任何特定的内容来允许使用数组元素(即“标签”==“临时”)基于返回数组内的值进行搜索

有谁可以帮忙吗?

wordpress advanced-custom-fields
1个回答
0
投票

您可以只查询不等于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 字段并且它工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.