Tabla de contenidos
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:
- <: Menos que.
- >: Mayor que.
- <=: Menor o igual que.
- >=: Mayor o igual que.
- !=: Distinto de.
- =: Igual que, este es por defecto, así que no es necesario indicarlo.
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.