Wordpress: entendiendo el “Loop”

Algo que todo template de wordpress comparte es la presencia del famoso loop, ¿que es este loop?, básicamente un bucle en el que se cargan los datos de todos los post que están disponibles en alguna página de un blog que funcione sobre esta plataforma. Este loop existirá tanto cuando despliegues el home de tu blog, o un post, o una página, o un resultado de una búsqueda, o un despliegue de post por categoría, o por etiqueta,  incluso funcionará cuando no haya nada que desplegar (por ejemplo: una búsqueda que no arroje resultados).

Quizás es uno de los puntos más importantes para entender a la hora de ponerse a desarrollar sobre wordpress. Si deseas dominar el arte de crear templates deberás entender el loop a la perfección. Esta no pretende ser la guía definitiva sobre un tema que se puede tratar tan en extenso, pero sí intentaré que sea una muy buena forma de partir.

Para partir comencemos mirando como está constituído el loop en esencia.

<?php
if (have_posts()) :
    while (have_posts()) :
        the_post() ;
        //Aquí pones lo que quieras hacer para cada post
   endwhile;
else:
    //Aquí pones lo que quieres que aparezca si no hay post que mostrar
endif;

?>

Lo que hace este código no es tan difícil de imaginar gracias al nombre, bastante descriptivo, de las funciones que integran el loop:

  1. if(have_posts()): Lo primero que hacemos es validar que existan posts para la página en la que nos encontramos, no importa si es el detalle de un post, la home, una categoría o cualquier otra sección del blog.
  2. Una vez verificado que existe al menos un post se inicia el bucle while(have_posts()), dentro de este bucle se irá teniendo acceso a la información de cada uno de los posts que se deben desplegar.
  3. Una vez dentro del bucle se ejecuta the_post(), esta función se ejecutará para cada uno de los posts y su misión es dejar disponibles dentro del ciclo actual del bucle (no permanentemente) los datos del post. Si una página tiene 5 posts, esta función se ejcutará 5 veces y cada vez dejará disponible la información de 1 post, esta información está disponible sólo hasta que el ciclo se repite dentro del bucle y la función the_post() vuelve a ser ejecutada disponibilizando información de otro post.
  4. Justo entre the_post() y endwhile es donde tenemos disponibles los datos de un post, por lo que es justamente en esa sección donde puedo desplegar información relacionada: título, fecha, autor, cantidad de comentarios, contenido, imagen miniatura, etc.
  5. Por último entre el else y el endif que aparecen al final es donde puedo elegir qué mostrar cuando la página actual no contenga ningún post.

Si miras el código de un template que ya esté hecho probablemente te encontrarás con el siguiente formato para escribir el loop pero es exactamente lo mismo, aunque me parece es más fácil de visualizar a la hora de trabajar tanto en el desarrollo como en el mantenimiento.

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<!--Aquí pones lo que quieras hacer para cada post-->

<?php endwhile; else: ?>

<!--Aquí pones lo que quieres que aparezca si no hay post que mostrar-->

<?php endif; ?>

Si bien este último ejemplo es perfectamente funcional, supongo que te das cuenta que no despliega absolutamente nada. Por esto te dejaré un ejemplo que sí despliegue información utilizando algunas funciones para templates que tiene wordpress. No es la intención de este artículo profundizar en estos tags (más adelante prometo hacerlo), pero gracias a su denominación es muy probable que entiendas rápidamente qué es lo que obtendrás:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_content('Leer más'); ?>

<?php endwhile; else: ?>

<h2>Lo siento pero...</h2>
<p>No hay ningún post en esta sección.</p>

<?php endif; ?>

Bien, espero que te haya gustado este artículo (de caracter introductorio), de uno de los temas más importantes de wordpress: el Loop. Más adelante haré más artículos referidos al mismo tema para ir viendo tópicos más avanzados.

1 comentario

  1. Martin dijo:

    Muy interesante este articulo!

Deja tu comentario

Comenta todo lo que quieras, también son bien aceptadas las críticas, pero ten en cuenta que eliminaré sin misericordia comentarios que sean ofensivos o discriminadores en cualquier forma. Si deseas que una imagen personalizada aparezca junto a tu comentario basta con que estés registrado en Gravatar.

Estás leyendo

Wordpress: entendiendo el “Loop”

Categoría

wordpress

Etiquetas

el loop, templates, wordpress