Veo que muchas personas prefieren utilizar el enganche pre_get_posts en lugar de los query_posts
Yay!
Por lo tanto, pre_get_posts
filtra un WP_Query
object que significa cualquier cosa que puedas hacer a través de query_posts()
puedes hacerlo a través de $query->set()
y $query->get()
. En particular, podemos hacer uso del atributo meta_query
(consulte 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 completamente 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 manera agregamos nuestra meta consulta junto con las meta consultas existentes.
Es posible que no quieras establecer la propiedad relation
de $meta_query
a AND
o OR
(para devolver publicaciones que satisfagan todas, o al menos una, meta consultas).
* Nota: Este tipo de consulta devolverá las publicaciones con la meta clave 'destacada', pero cuyo valor no es yes
. No incluirá publicaciones donde no exista la clave de metadatos 'destacados'. Podrás hacer esto en 3.5 .