Destacados con etiquetas
Desde hace tiempo quería una forma sencilla de destacar algunas entradas en mi sitio sin tener que crear una categoría especial únicamente para ese propósito.
La primera idea fue utilizar una categoría llamada "Destacados", pero rápidamente encontré un inconveniente: las categorías describen el contenido, mientras que el hecho de destacar una entrada es una característica temporal o editorial. Una entrada puede pertenecer a la categoría WordPress o Python y, al mismo tiempo, ser un contenido que quiero mostrar en una posición privilegiada de la página principal.
Para eso las etiquetas resultan mucho más apropiadas.
La solución consiste en realizar una consulta independiente utilizando WP_Query, solicitando únicamente las entradas que tengan asignada una determinada etiqueta. En este ejemplo utilizo la etiqueta star, aunque naturalmente puede llamarse como prefieras.
<?php $starred = new WP_Query('tag=star&showposts=2'); ?>
<?php if ($starred->have_posts()) : ?>
<?php while ($starred->have_posts()) : $starred->the_post(); ?>
<h4><?php the_title(); ?></h4>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
La consulta devuelve únicamente las dos entradas más recientes que tengan asignada la etiqueta star.
A partir de ahí podemos mostrarlas con el formato que deseemos. En este ejemplo únicamente imprimo el título y el contenido, pero podríamos utilizar miniaturas, extractos, información del autor o cualquier otro dato disponible dentro del loop de WordPress.
Es importante utilizar una instancia independiente de WP_Query en lugar de modificar la consulta principal. De esa manera evitamos interferir con el loop del resto de la página y mantenemos completamente aislada la consulta de los contenidos destacados.
Con una técnica tan simple es posible construir bloques de "Destacados", "Recomendados", "Lecturas obligadas" o cualquier otra sección editorial sin necesidad de alterar la estructura de categorías del sitio.