因此,我正在构建一个包含元查询的wordpress查询。
我从一些早期的不同函数中获得了一些元值,这似乎很好用。
最后是:uploadImageAsPromise (imageFile) {
const self = this;
return new Promise(function (resolve, reject) {
var storageRef = firebase.storage().ref("/imagestestnew/"+imageFile.name);
//Upload file
var task = storageRef.put(imageFile);
//Update progress bar
task.on('state_changed',
function progress(snapshot){
var percentage = snapshot.bytesTransferred / snapshot.totalBytes * 100;
console.log("percentage" + percentage)
self.progressUpload = percentage;
},
function error(err){
console.log("error")
},
function complete(){
console.log("done")
var downloadURL = task.snapshot.downloadURL;
}
);
});
}
。
然后,我尝试创建一个带有foreach循环的动态元查询。
这是通过遍历数组并根据值创建新数组来完成的。
$arrayOfVendors = array(92,85,72)
现在,我的新数组应该由包含我所需内容的几个数组组成。
通过将其放入我的参数中,我应该拥有我想要的一切
$test2QueryStringArray = array();
foreach ($arrayOfVendors as $singleVendorObject) {
$test2QueryString = array(
'key' => 'products_vendor',
'compare' => 'LIKE',
'value'=> '"'.$singleVendorObject.'"',
);
array_push($test2QueryStringArray, $test2QueryString);
}
但是-我最终得到的是以下内容。
'meta_query' => array(
'relation' => 'OR',
$test2QueryStringArray
)
正确的语法如下。
'meta_query' => array (
'relation' => 'OR',
0 => array (
0 => array (
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '92',
),
1 => array (
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '85',
),
2 => array (
'key' => 'products_vendor',
'compare' => 'LIKE',
'value' => '72',
),
),
)
基本上,我想做的是在ACF关系字段(可以选择多个供应商)中获取从阵列中选择供应商的所有帖子。
不知道如何从这里继续进行,我尝试过的所有方法,要么由于从数组到字符串的转换而死亡,要么根本没有给我预期的输出。
因此,我们将不胜感激<3
答案 0 :(得分:3)
此行:
'meta_query' => array('relation' => 'OR',
$test2QueryStringArray
)
您正在将$test2QueryStringArray
推入meta_query
数组。因此,您可以获得额外的嵌套层次。您想要做的是合并:
'meta_query' => array_merge(array('relation' => 'OR'),
$test2QueryStringArray
)