【发布时间】:2015-08-02 07:06:19
【问题描述】:
我已经尝试解决这个问题两天了,想知道是否有人可以提供一些指示/指导......
我从存储为数组的自定义字段中获取省份列表:
$userprovince = get_user_field ("s2_province_code");
使用 print_r 的输出:
数组([0] => MB [1] => NU)
现在我想使用 meta_query 对 key='province' 使用该值来查询_posts。我已经使用 $userprovince 并将其转换为多维数组:
for ($i=0; $i< count($userprovince); $i++)
{
$count = count($arrays);
$arrays[$count] = array(
'key' => 'province',
'value' => $userprovince[$i],
'compare' => 'LIKE'
);
}
哪些输出使用 print_r:
Array ( [0] => Array ( [key] => Province [value] => MB [compare] => LIKE ) [1] => Array ( [key] => Province [value] => NU [比较] => 喜欢 ) )
所以我的查询设置如下:
$args = array(
'post_type' => 'clientresource',
'post_status' => 'publish',
'category_name' => 'employment-standards',
'meta_query' => array(
'relation' => 'AND',
$arrays,
'relation' => 'OR',
array(
'key' => 'province',
'value' => 'All',
'compare' => 'LIKE'
)
)); query_posts($args);
我的问题 - 它不起作用。没有收集到正确的记录。但是,如果我像这样手动设置省份:
$args = array(
'post_type' => 'clientresource',
'post_status' => 'publish',
'category_name' => 'employment-standards',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'province',
'value' => 'NB',
'compare' => 'LIKE'
),
array(
'key' => 'province',
'value' => 'NU',
'compare' => 'LIKE'
),
array(
'key' => 'province',
'value' => 'All',
'compare' => 'LIKE')
));query_posts($args);
它有效,我得到了预期的记录。
这两个元查询的区别是:
工作:
[meta_query] => 数组 ( [relation] => OR [0] => 数组 ( [key] => 省 [value] => NB [compare] => LIKE ) [1] => 数组 ( [ key] => Province [value] => NU [compare] => LIKE ) [2] => Array ( [key] => Province [value] => All [compare] => LIKE ) ) )
不工作:
[meta_query] => 数组 ( [relation] => OR [0] => 数组 ( [0] => 数组 ( [key] => 省 [value] => MB [compare] => LIKE ) [ 1] => 数组 ( [key] => Province [value] => NU [compare] => LIKE ) ) [1] => Array ( [key] => Province [value] => All [compare] =>喜欢 ) ) )
我一直在苦苦挣扎的是如何在 meta_query 中输出我的数组,以便它包含与工作示例相同的结构?我尝试使用 var_export 输出它,但它保持不变。我也尝试过使用 foreach 来生成数组,但我仍然无法得到它。
感谢您的阅读。
【问题讨论】:
标签: php arrays wordpress multidimensional-array