Vejo que muitas pessoas preferem usar o gancho pre_get_posts em vez de query_posts
Yay!
Então pre_get_postsfiltra um WP_Queryobjeto, o que significa que qualquer coisa que você possa fazer via, query_posts()pode fazer via $query->set()e $query->get(). Em particular, podemos fazer uso do meta_queryatributo (consulte Codex ):
$meta_query = array(
array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
),
);
$query->set('meta_query',$meta_query);
Mas .. isso substitui a 'meta query' original (se houver). Portanto, a menos que você queira substituir completamente a meta consulta original, sugiro:
//Get original meta query
$meta_query = $query->get('meta_query');
//Add our meta query to the original meta queries
$meta_query[] = array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
);
$query->set('meta_query',$meta_query);
Dessa forma, adicionamos nossa meta consulta ao lado das meta consultas existentes.
Você pode ou não querer definir a relationpropriedade de $meta_querycomo ANDou OR(para retornar postagens que atendam a todas, ou pelo menos uma, meta consultas).
* Nota: este tipo de consulta retornará postagens com a meta-chave 'em destaque', mas cujo valor não é yes. Não incluirá postagens onde a meta-chave 'em destaque' não existe. Você poderá fazer isso na versão 3.5 .