Tabla de contenidos
Vamos a ver como podemos personalizar el bucle de WordPress para modificar los datos a mostrar, por ejemplo podemos ordenar o indicar cuantos elementos queremos mostrar. Mediante el bucle, podemos crear consultas complejas sin conocimientos de SQL.
El objeto wp_query
Wp-query es una clase definida en WordPress que facilita la creación de consultas SQL y modificar la consulta a base de datos que luego pintaremos con el bucle de WordPress.
Vamos a ver un ejemplo de su funcionamiento:
<?php $ejemplo = new WP_Query('post_per_page=3'); while ($ejemplo->have_posts()): $ejemplo->the_post(); the_title(); endwhile; ?>
En este ejemplo se mostraran solo los 3 primeros registros, ya que hemos definido el parámetro: post_per_page.
Parámetros de una consulta
Veamos los posibles parámetros para configurar una consulta personalizada:
- p=X: Carga el ID indicado.
- name=enlace-permanente: Carga los artículos que su enlace permanente coincide con lo indicado.
- post_status=X: Carga en función del estado de los artículos: Pending, draft, Published, Future, Private, Trash y Auto-Draft.
- ignore_sticky_posts: Evita que en el bucle se muestren las entradas fijas en el inicio del mismo. Las entradas fijas son aquellas que se marcan como Fijas desde visibilidad del artículo.
- post_type=X: Para filtrar entre entradas/artículos (post) o páginas (page). también es posible indicar: Adjuntos (Attachment), Menú de navegación (Navigation menu) y artículos en revisión (Revision).
- posts_per_page=X: Número de registros a mostrar.
- offset=x: Ignorar las primeras X entradas.
- pagename=X: Es posible cargar una página indicando su nombre.
- page_id=X: Es posible cargar una página conociendo su ID.
- cat=X,X,X: Cargamos las entradas de unas categorías concretas.
- category_name=X: Cargamos las entradas de una categoría.
- tag_id: Cargamos las entradas de una etiqueta.
- tag=X,X,X: Cargamos entradas en función de las etiquetas establecidas.
- author=X o author_name=X: Cargamos entradas del autor.
- monthnum=X: Se cargan las entradas del mes.
- day=X: Se cargan las entradas del día.
- year=2015: Se cargan las entradas del año 2015.
- orderby=title: ordenamos las entradas por título.
- order=ASC: Ordenamos ascendentemente ASC o descendentemente DESC.
- meta_key=X: Si hemos creado campos personalizados, podemos filtrar por los artículos que tienen un campo personalizado sea cual sea su valor.
- meta_value=X: Cargamos las entradas que tengan como valor de un campo personalizado el indicado.
Ejemplos
//Página con ID=2 $ejemplo = new WP_Query('post_type=page&p=2'); //Recuperar 5 entradas empezando por la 3ª ordenado por title $ejemplo = new WP_Query('post_type=post&posts_per_page=5&offset=2&orderby=title'); //Recuperar las entradas que sean de la categoría 5, que tengan la etiqueta wordpress y sena del año 2015 $ejemplo = new WP_Query('post_type=post&cat=5'&tag=wordpress&year=2015);