我正在尝试将wp搜索扩展到postmeta。这是我的片段:
function filtroRicerca($query) {
if ($query->is_search):
$post_type = $query->get('post_type');
$post_type[] = 'ordine';
$query->set('post_type', $post_type );
$meta_query = $query->get('meta_query');
$meta_query['relation'] = 'OR';
$meta_query[] = array(
'key' => 'ritiro_indirizzo',
'value' => $query->query_vars['s'],
'compare' => 'LIKE'
);
$query->set( 'meta_query', $meta_query );
endif;
return $query;
};
add_filter('pre_get_posts','filtroRicerca');
这应该很容易,但我看不出我错了!如果我搜索一个字符串,结果只会匹配帖子标题,内容等。如果我只在我的元字段中查找某些内容,则不会返回任何行。我做错了什么?
答案 0 :(得分:1)
有一个WP错误,你需要在另一个数组中封装$ meta_query [] = like:
$meta_query[] = array(
array(
'key' => 'ritiro_indirizzo',
'value' => $query->query_vars['s'],
'compare' => 'LIKE'
)
);
此外,您不需要返回$ query对象。