Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
Cómo crear tus propios temas para WordPress

Creando un tema desde cero para WordPress parte 3: El loop

 

El loop es el “mecanismo” que WordPress usa para mostrar información a través de las plantillas. Es donde ocurre la “magia” y tenemos acceso a la información de nuestros posts.

loop

El loop básico tiene la siguiente estructura:

Si estas en la plantilla category.php, el loop te devolverá por defecto la información de tus 10 últimos posts. Si estás en single.php o en page.php te devolverá la información de ese post concreto.

have_posts() comprueba si en la página actual hay posts. Si hay posts, el bucle while se ejecuta mientras haya posts (puede ser uno en caso de páginas de detalle como por ejemplo page.php, single.php o varios en páginas de listado como category.php, search.php, archive.php, etc…). La función the_post() es la que recoge la información sobre el post actual dentro del bucle while.

Normalmente se suele poner un mensaje de “no se han encontrado resultados” en caso de que no encuentre posts, por lo que el loop quedaría algo tipo:

 

¿Qué puede mostrar el loop?

Estas son algunas de las funciones disponibles dentro del loop y que nos devuelve información sobre el post, page o Custom Post Type actual:

  • next_post_link(): Enlace al siguiente post publicado cronológicamente
  • previous_post_link(): Enlace al anterior post publicado cronológicamente
  • the_category(): La categoría o categorías asociadas al post actual
  • the_author(): El Autor del post actual
  • the_content(): El contenido principal del post actual
  • the_excerpt(): El extracto del post actual
  • the_post_thumbnail(): La imagen destacada del post actual
  • the_ID(): El ID del post actual
  • the_meta(): Los campos personalizados asociados al post actual
  • the_shortlink(): El enlace corto del post actual
  • the_tags(): La etiqueta o etiquetas asociadas al post actual
  • the_title(): El título del post actual
  • the_time(): La fecha en la que se ha creado el post actual

 

Además, podemos usar conditional tags para por ejemplo maquetar nuestro contenido o añadir clases específicas según nuestras necesidades:

  • is_home(): Devuelve true si la pagina actual es la home
  • is_admin(): Devuelve true si un administrador está logueado y visitando la página
  • is_single(): Devuelve true si la pagina actual es el detalle de un post
  • is_page(): Devuelve true si la pagina actual es el detalle de una página
  • is_page_template(): Devuelve true si la pagina actual es una plantilla específica, por ejemplo: is_page_template(‘page-contact.php’)
  • is_category(): Devuelve true si la pagina actual es una categoría. Puede especificarse una en concreto, por ejemplo: is_category(‘noticias’)
  • is_tag(): Devuelve true si la pagina actual es una etiqueta
  • is_author(): Devuelve true si la pagina actual es el detalle de autor o si un autor específico está visitando la página
  • is_search(): Devuelve true si la pagina actual es la página de resultados de búsqueda
  • is_404(): Devuelve true si la pagina actual es página no encontrada o página no existe
  • has_excerpt(): Devuelve true si la pagina o post actual tiene extracto

 

Esto es en esencia el loop de WordPress. Tenemos también funciones para interactuar con él o modificarlo a nuestro antojo como query_posts(), rewind_posts()…y varios hooks para crear nuestras propias funciones y engancharnos a ellos como pre_get_posts, the_post y found_posts.

Puede que también te interese

Sanitizando: cómo validar y escapar datos en WordPress
Sanitizando: cómo validar y escapar datos en WordPress
En éste artículo vamos a aprender a hacer un tratamiento de datos correcto en WordPress. Éste punto es imprescindible para cualquier desarrollo a medida que…
AJAX en WordPress, de un modo más moderno
AJAX en WordPress, de un modo más moderno
En el post anterior veíamos cómo hacer una petición AJAX en WordPress de una manera tradicional. Ahora veremos cómo resolver el mismo ejemplo de la…
Seguridad WordPress: proteger el archivo wp-login.php
Seguridad WordPress: proteger el archivo wp-login.php
En una entrada anterior vimos cómo proteger el acceso a wp-admin. Vamos a ver ahora cómo proteger el archivo wp-login.php, situado en la raíz de…
Evitar la enumeración de usuarios en WordPress: bola extra
Evitar la enumeración de usuarios en WordPress: bola extra
Hace unos meses escribí en dos entradas cómo evitar la enumeración de usuarios o user enumeration (parte 1 y parte 2). Ahora viene la bola extra:…