WordPress如何使用多个 meta_query和meta_key

qc6wkl3g  于 2022-11-22  发布在  WordPress
关注(0)|答案(2)|浏览(186)

我使用了一个 meta_query,它带有一个带有两个键的关系'OR'来检索所有的标签,它工作得很好

$args = array(
    'taxonomy'   => 'post_tag',
    'hide_empty' => true,
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key'   => 'key-check',
            'value' => false,
        ),
        array(
            'key'     => 'key-check',
            'compare' => 'NOT EXISTS',
        ),
    ),
);

我必须添加另一个不同的键,但我不知道如何是最好的方法来做到这一点。我想使用下面的代码,并添加另一个 meta_query,但它是正确的或我正在犯一个错误?

$args = array(
    'taxonomy'   => 'post_tag',
    'hide_empty' => true,
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key'   => 'key-check',
            'value' => false,
        ),
        array(
            'key'     => 'key-check',
            'compare' => 'NOT EXISTS',
        ),
    ),
    'meta_query' => array(
        array(
            'key'   => 'another-key',
            'value' => true,
        ),
    ),
);
p8h8hvxi

p8h8hvxi1#

您可以使用多个 meta查询并跳过空值:

$arg = [
    'post_type'     => 'post',
    'status'        => ['publish'],
    'post_per_page' => -1,
];

$arg['meta_query'] = [
    'relation' => 'OR',
    [
        'key' => 'custom_1',
        'value' => '',
        'compare' => '!='
    ],
    [
        'key' => 'custom_2',
        'value' => '',
        'compare' => '!='
    ],
];
hof1towb

hof1towb2#

您使用了相同的“ meta_query”键两次,这就是问题产生的原因。检查下面的代码。

$args = array(
    'taxonomy'   => 'post_tag',
    'hide_empty' => true,
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key'   => 'key-check',
            'value' => false,
        ),
        array(
            'key'     => 'key-check',
            'compare' => 'NOT EXISTS',
        ),
        array(
            'key'   => 'another-key',
            'value' => true,
        ),
    ),
);

相关问题