[英]WP JSON REST API (Ryan McCue) how to query posts with specific meta data with 'AND' relation?
我使用Wp_query類查詢我的帖子。 在頁面加載時獲取的模板中有15個帖子,其過濾效果很好。 使用JSON Restful服務為其他帖子獲取Infinity滾動獲取。 服務器端的過濾器工作正常,但我不知道如何將邏輯從服務器傳輸到正確的查詢。
傳遞給服務器上Wp_query的Meta_query數組:
meta_query
0 => array (size=3)
'key' => string 'homepage' (length=8)
'value' => string 'false' (length=5)
'compare' => string 'NOT EXISTS' (length=10)
1 => array (size=2)
'key' => string '_newsml_id' (length=10)
'compare' => string 'NOT EXISTS' (length=10)
'relation' => string 'AND' (length=3)
如何將其轉換為查詢? 就像是:
/ wp-json / posts?filter [meta_query] [key] = homepage,_newsml_id&[meta_query] [compare] = NOTEXISTS
要么
/ wp-json / posts?filter [meta_query] [key] = homepage&filter [meta_query] [key] = _ newsml_id&[meta_query] [compare] = NOTEXISTS
(很抱歉重復問題 ,我只是想獲得可能最准確的答案)
很抱歉回答我自己的問題,但也可能對其他一些開發人員有所幫助。
我創建了這個額外的過濾器'json_query_var-meta_query',該過濾器返回必要的參數。
function adjustQrry($data){
$args = array();
$args['relation'] = 'AND';
foreach ($data as $key=>$value) {
if ( 'relation' === $key ) {
$args['relation'] = $data['relation'];
}
if ( substr($key, 0, 3) === 'key' ) {
$arg_num = substr($key, 3);
$args[(int)$arg_num]['key'] = $value;
}
if ( substr($key, 0, 7) === 'compare' ) {
$arg_num_comp = substr($key, 7);
$args[(int)$arg_num_comp]['compare'] = $value;
}
}
return $args;
}
add_filter('json_query_var-meta_query', 'adjustQrry', 10, 1);
現在,我可以像這樣調用JSON restful來模仿服務器上已經存在的Wp_query posts過濾器:
?filter[meta_query][key]=_newsml_categories_newsstream&filter[meta_query][key2]=homepage&filter[meta_query][relation]=AND&filter[meta_query][compare]=NOT%20EXISTS&filter[meta_query][compare2]=NOT%20EXISTS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.