我需要从数组中执行多个元查询。我有这样的想法:
$search_term[] = array(
\'key\' => \'_cmb_listing_status\',
\'value\' => \'Active\',
\'compare\' => \'=\'
);
foreach ( $refine_property_type as $search_value ) {
$search_term[] =
array(
\'key\' => \'_cmb_property_type\',
\'value\' => $search_value,
\'compare\' => \'=\'
);
}
这会产生如下输出:
Array (
[0] => Array
(
[key] => _cmb_listing_status
[value] => Active
[compare] => =
)
[1] => Array
(
[key] => _cmb_property_type
[value] => House
[compare] => =
)
[2] => Array
(
[key] => _cmb_property_type
[value] => Office
[compare] => =
)
)
我正在WorpAddress中使用以下代码进行元查询:
$args = array(
\'paged\' => $paged,
\'post_type\' => \'property\',
\'posts_per_page\' => 5,
\'meta_key\' => \'_cmb_listing_featured\',
\'orderby\' => \'meta_value\',
\'order\' => \'DESC\',
\'meta_query\' => array(
\'relation\' => \'AND\',
$search_term
)
);
$wp_query = new WP_Query( $args );
那就行不通了?有谁能帮我弄清楚这件事吗?我认为这是因为多维数组被传递到查询中,但我不确定如何在WP\\u查询中“展平”它?
最合适的回答,由SO网友:Pieter Goosen 整理而成
$search_term
已是数组的数组。当你最终将其添加到meta_query
, 你得到了一个数组中的一个数组中的一个数组,这是行不通的
您正在使用AND
作为您的relation
运算符,它是多数组的默认值meta_query
. 我建议你放下它,然后简单地喂它$search_term
直接发送到您的meta_query
. 无阵列。
实例
\'meta_query\' => $search_term,