使用GET_POST根据具有高级定制字段的复选框值获取帖子

时间:2018-09-27 作者:qotsa42

我有一个自定义的帖子类型“Jobs”。

这些作业有一个ACF复选框字段“城市”。“工作”可以有多个“城市”,因此返回的工作具有如下元数据:

[city] => Array
    (
        [0] => Austin
    ) 


[city] => Array
    (
        [0] => [Austin]
        [1] => [Boulder]
    )

[city] => Array
    (
        [0] => [Seattle]
        [1] => [Portland]
        [2] => [Boulder]
    )
我需要编写一个get\\U posts查询,以便只返回与单个城市匹配的作业。

然而,我不知道我的参数应该是什么样子,因为我需要匹配“meta\\u value”的值是一个数组。

这是我的密码,你们能帮忙吗?

function get_city_jobs() {
    $args = array( 
        \'post_type\'     =>  \'careers_post_type\', 
        \'numberposts\'   =>  -1,
        \'meta_key\'      =>  \'city\',
        \'meta_value\'    =>  \'Boulder\',
        \'meta_compare\'  =>  \'LIKE\'
    );

    $jobs = get_posts($args);

    foreach ($jobs as $job) {
        echo "<pre>";
        print_r( get_fields($job->ID));
        echo "</pre>";
    }

}

1 个回复
SO网友:qotsa42

好的,我在这里找到了答案:

WP Query post meta value

结果你必须使用serialize php函数,因为wordpress是如何在数据库中存储数组的。

function get_city_jobs() {

    $city = ($_GET[\'city\']);
    $city = trim(ucfirst($city));

    $args = array( 
        \'post_type\'     =>  \'careers_post_type\', 
        \'numberposts\'   =>  -1,
        \'meta_query\' => array(
            array(
                \'key\' => \'city\',
                \'value\' => serialize($city),
                \'compare\' => \'LIKE\'
            )
        )
    );

    return get_posts($args);

}

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post