Vejo que muitas pessoas preferem usar o gancho pre_get_posts em vez de query_posts
Yay!
Então pre_get_posts
filtra um WP_Query
objeto, 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_query
atributo (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 relation
propriedade de $meta_query
como AND
ou 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 .