仅当这些页面中的特定自定义字段不为空时才列出子页面

时间:2017-03-14 22:24:01

标签: wordpress advanced-custom-fields

所以我有这个功能列出所有子页面,我希望它不要列出那些没有自定义字段" role"或者如果此自定义字段为空。我尝试了不同的东西,但即使我键入值或元值,也可以测试"列出所有页面。这个查询有问题,meta_key工作正常,但meta_value不起作用。

我的功能代码是:

function list_child_pages() {
    $args = array(
        'numberposts'   => -1,
        'post_type'     => 'page',
        'meta_key'      => 'role',
        'meta_value' => 'test',
    );
    $the_query = new WP_Query( $args );
    if ($the_query->have_posts()) {
        return list_childs();
    } else
        $string="team members were not found";
    return $string;
}

1 个答案:

答案 0 :(得分:2)

'meta_query' => [
    'relation' => 'AND',
    [
        'key'     => 'role',
        'value'   => 'test',
        'compare' => '='
    ]
],

我更喜欢使用[]代替array()

但你也可以

'meta_query' => array(
    'relation' => 'AND',
    array(
        'key'     => 'role',
        'value'   => 'test',
        'compare' => '='
    )
),

与您的示例集成:

$args = array(
    'numberposts'   => -1,
    'post_type'     => 'page',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key'     => 'role',
            'value'   => 'test',
            'compare' => '='
        )
    ),
);

尝试阅读Class WP_Meta_Query的文档:https://codex.wordpress.org/Class_Reference/WP_Meta_Query#Initializing_WP_Meta_Query