El bucle (I) Entendiendo el bucle
El bucle es una de las partes más importantes de WordPress, por lo que pasaremos varias entradas entendiéndolo, viendo como funciona y exprimiéndolo todo cuando podamos para poder lograr los resultados que deseemos en nuestros proyectos.
Basicamente casi todo en wordpress funciona con el bucle, cuando entramos en un sitio web de wordpress, esté analiza la dirección y determina si debe de hacer una consulta o si se trata de una página que no requiera dicha consulta, para ello observa la URL, por ejemplo:
http://mialtoweb.es/category/angular/
En esta dirección se determina que debe de buscar todas las entradas de la categoría angular.
Para traducir esta URL y comenzar a trabajar, WP utiliza el método parse_query() del objeto WP_Query, tras esto convierte los parámetros en una consulta MySQL utilizando el método get_posts() del mismo objeto (veremos muchas de su posibilidades), en el cual se guarda el resultado de la consulta realizada a la base de datos hasta que se haga una nueva consulta.
Tras esto se establecen las etiquetas condicionales is, que se encargan de comprobar condiciones como is_home(), is_admin(), is_page()… y según las que se cumplan WP va realizando una tarea u otra.
De hecho WP selecciona un tipo de plantilla y otra dependiendo del tipo de consulta, de respuestas recibidas…
El bucle puede modificarse de la forma que más interese a nuestros propósitos de formas casi infinitas, y de hecho con muy poco trabajo se pueden empezar a conseguir resultados.
Pasando de parámetros a SQL
Cuando se establecen los parámetros de la consulta, ya sea por medio de la URL o por una consulta explicita en código (algo también muy común), es el método get_posts() quien traduce estos parametros a una consulta SQL.
El formato básico de una consulta SQL es:
SELECT campos FROM tabla WHERE condiciones
Lo interesante en esta consulta son las condiciones que nos dirán cuantas respuestas necesitamos, el orden, si tienen alguna característica especial…
En tabla no solo nos referimos a una tabla si no que puede ser la unión de diferentes tablas (JOIN) complicando las consultas.
Dentro de WP se pueden reconocer dos tipos de contenidos, entradas y páginas, incluso los contenidos personalizados se consideran como uno de estos tipos, y se incluyen en la misma tabla (prefijo_posts)
En definitiva el bucle es el corazón de WordPress, en todos los temas de WP existen bucles, tanto para contenidos, como para widgets… y dependiendo de donde se usen y como se usen pueden tener efectos diferentes. De hecho una web puede tener tantos bucles como se deseen ya que en definitiva el bucle solo es una consulta a la base datos y la iteración y presentación de los datos obtenidos.
El flujo del bucle
Ya va siendo hora de que analicemos como funciona todo esto, como podemos ver en la imagen, el bucle consiste en una condicion if que controla que la consulta obtenga resultados, en caso afirmativo comienza un bucle while donde se itera por las entradas o páginas a mostrar por medio de la función have_posts() que comprueba la lista de entradas , invocando a las función the_post() en caso de que aun queden entradas, para que se puedan acceder a los datos de la entrada y trabajar con ellos por medio de la función setup_postdata() invocada por the_post() de forma automática, para recoger los metadatos. Cuando ya no hay más posts termina el bucle y se continua ejecutando el código.
Todo esto que puede parecer muy lioso se resume en las siguientes líneas de código:
<?php if (have_posts()): while (have_posts()): the_post(); //aquí es donde se recogen y muestras todos los datos que deseemos del post endwhile; endif; ?>
There are 3 Comments.
Pingback: EL bucle (II) Etiquetas de plantilla | Mialto WEB