Veo que muchas personas prefieren usar el gancho pre_get_posts en lugar de query_posts
¡Hurra!
Así pre_get_posts
filtra un WP_Query
objeto 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_query
atributo (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 relation
propiedad de $meta_query
to AND
o 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 .