Veo que muchas personas prefieren usar el gancho pre_get_posts en lugar de query_posts
¡Hurra!
Así pre_get_postsfiltra un WP_Queryobjeto que significa cualquier cosa que podría hacer a través de query_posts()usted puede hacer a través de $query->set()y $query->get(). En particular, podemos hacer uso del meta_queryatributo (ver Codex ):
$meta_query = array(
array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
),
);
$query->set('meta_query',$meta_query);
Pero ... esto reemplaza la 'meta consulta' original (si tuviera una). Entonces, a menos que desee reemplazar por completo la meta consulta original, sugiero:
//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);
De esta forma, agregamos nuestra metaconsulta junto con las meta consultas existentes.
Es posible que desee / no establecer la relationpropiedad de $meta_queryto ANDo OR(para devolver publicaciones que satisfagan todas, o al menos una, metaconsultas).
* Nota: Este tipo de consulta devolverá publicaciones con la metaclave 'presentada', pero cuyo valor no es yes. No incluirá publicaciones en las que la metaclave 'destacada' no exista. Podrás hacer esto en 3.5 .