我有一个自定义的帖子类型“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>";
}
}
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);
}