Icono del sitio Imacreste

Consultas avanzadas en el bucle de WordPress

Hemos visto en artículos anteriores que es el bucle, como cambiar las consultas e incluso hemos creado bucles anidados, y ahora vamos a ver como podemos crear consultas SQL avanzadas, por ejemplo realizando comparaciones entre diferentes campos.

Ejemplo

<?php
$args = array('posts_per_page'=>10,'meta_key'=>'price','meta_value'=>'10','meta_compare'=>'<');
$ejemplo=new WP_Query($args);
if ($ejemplo->have_posts()):
while($ejemplo->have_posts()):
$ejemplo->the_post();
the_title();
endwhile;
endif;
?>

Explicación

En este caso creamos un bucle personalizado que muestre los artículos que tengan un campo personalizado precio y que el valor sea menor que 10.

Como podemos comprobar el parámetro: meta_compare usado en la función wp_query, permite crear comparaciones, en este caso menor que (<).

Estos son los valores que admite:

Ejemplo: meta_query

En ocasiones es necesario realizar varias consultas, por ejemplo que el precio sea menor de 10 y que sea de color rojo, veamos como hacer la consulta.

<?php
$args = array(
 'posts_per_page'=>10,
 'meta_query'=>array(
   array('meta_key'=>'price','meta_value'=>'10','meta_compare'=>'<'),
   array('meta_key'=>'color','meta_value'=>'Rojo')
 )
);
$ejemplo=new WP_Query($args);
if ($ejemplo->have_posts()):
while($ejemplo->have_posts()):
$ejemplo->the_post();
the_title();
endwhile;
endif;
?>

En esta ocasión además de buscar los artículos que tengan el campo personalizado precio y sea menor de 10, mostrara solo aquellos que tengan el campo personalizado color, y sea Rojo.

Salir de la versión móvil