0
我想爲wp_query構建一組動態參數,但是這樣做存在實際問題。看看下面的例子代碼(不工作)...帶有可變數量參數的wp_query
$args = array(
'numberposts' => -1,
'posts_per_page' => -1,
'post_type' => 'skills',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'years',
'value' => 'Primary',
'compare' => 'LIKE'
),
array(
'key' => 'years',
'value' => 'Secondary',
'compare' => 'LIKE'
)
)
);
// get results
$the_query = new WP_Query($args);
的想法是,根據用戶輸入的表單中的結果,在我meta_query值子句的數目會改變。在上面的代碼中有兩個選項,但可能取決於輸入有3個或另一個時間5.
我試圖在$ args的外部編譯這些內部數組元素。在下面的代碼中假設$ inputArray是一個字符串元素的單維數組。測試看起來像:
$inputArray=array();
if (is_array($yearsArray)){
foreach($yearsArray as $year) {
$inputArray[]=array('key' => 'years','value' => $year,'compare' => 'LIKE');
}
}
// args
$args = array(
'numberposts' => -1,
'posts_per_page' => -1,
'post_type' => 'skills',
'meta_query' => array(
'relation' => 'OR',
$inputArray
)
);
但查詢只是運行,就好像沒有應用meta_query查詢。
我也嘗試使用函數wp_parse_args來嘗試合併多個meta_queries,但它似乎覆蓋了該值,並且只有最後一個被使用。這看起來像這樣:
// args
$args = array(
'numberposts' => -1,
'posts_per_page' => -1,
'post_type' => 'skills'
);
$args2 = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'years',
'value' => 'Secondary',
'compare' => 'LIKE'
)
)
);
$args3 = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'years',
'value' => 'Primary',
'compare' => 'LIKE'
)
)
);
$args=wp_parse_args($args,$args2,$args3);
所以,你可以看到我已經嘗試了幾種不同的方法,但都沒有工作。任何人都可以協助