出于某种原因,我的LIKE参数似乎不起作用。如果我使用=,则此查询有效。
阵列:
$ref_query = array(
'meta_key' => 'reference_code',
'value' => array($ref),
'compare' => 'LIKE'
);
这个小数组是其他几个数组的一部分,它们被推入下一行:
$query->set( 'meta_query', $meta_query);
所有其他数组的工作正常,包括其运算符(> =,< = etc)。
编辑:看起来这确实有效但是我的结果是通过帖子ID排序的,因为我希望首先从查询返回结果。
答案 0 :(得分:1)
当您仅使用比较搜索文本时,如果您想使用数组,我们需要在meta_query中预先知道它和关系。
代码演示:
$meta_query[0] = array('relation' => 'OR');
$all_meta = array('type','Brand','companyname','contactperson','phone','website','openinghours','coffeemachine'/*,'map_location'*/,'map-address1','map-address2','map-address3','map-zip','map-state','map-city','price');
foreach ($all_meta as $meta) {
$meta_query[0][] = array(
'key' => $meta,
'value' => $custom_key,
'compare' => 'LIKE'
);
}
答案 1 :(得分:0)
改为使用meta_compare
。
meta_compare(string) - 测试'meta_value'的运算符。可能的值为'=','!=','>','> =','<','< =','LIKE','NOT LIKE','IN','NOT IN ','BETWEEN','not BETWEEN','NOT EXISTS','REGEXP','NOT REGEXP'或'RLIKE'。默认值为'='。
文档中的示例:
$args = array(
'meta_key' => 'color',
'meta_value' => 'blue',
'meta_compare' => '!='
);
$query = new WP_Query( $args );