Придётся нырять в дебри говнокодца т.к. у Вордпресса с этим не так всё просто.
Если вкратце - нужно вручную переписать sql запрос:
add_filter('posts_join', array(&$this, 'maginza_search_join' ));
add_filter('posts_where', array(&$this,'maginza_search_where' ));
add_filter('posts_groupby', array(&$this,'maginza_search_groupby'));
function maginza_search_join($join) {
global $wpdb;
if( is_search() ) {
$join .= 'LEFT JOIN '.Options::$table_meta.' ON wp_maginzameta.maginza_id=wp_posts.ID';
}
return $join;
}
function maginza_search_where( $where ) {
global $wpdb;
if( is_search() ) {
$findkeys='';
$where = preg_replace('/post_title LIKE \'(.*?)\'\)/', 'post_title LIKE \'$1\') OR ( (FIND_IN_SET(wp_maginzameta.meta_key, \''.$findkeys.'\')) AND (wp_maginzameta.meta_value LIKE \'$1\') ) ', $where );
}
return $where;
}
function maginza_search_groupby( $groupby ) {
if( !is_search() ) {
return $groupby;
}
$groupby="wp_posts.ID";
return $groupby;
}
Что бы понять - сначала составьте запрос в PHPMyAdmin или тем, чем пользуетесь для администрирования базы.