Cada vez hay más themes (plantillas) estilo revista que usan bloques especiales en la portada para mostrar posts destacados. Lo malo es que normalmente hay que definir una nueva categoría con un nombre predefinido que es de donde el código de ese loop
especial cogerá los últimos posts (1,2,3, los que sean).
Pero ¿por qué no aprovechar la funcionalidad incluida en WordPress de los posts sticky?. Si ya es parte de las opciones de publicación ¿no se puede usar para mostrar estos posts especiales como destacados?, pues si, se puede.
Para ello, antes del loop normal de nuestra plantilla, solo tenemos que definir un código que llame a los «stickies» y muestre solo aquellos que queramos, no todos, por supuesto. Sería algo así:
<?php /* Coge todos los posts sticky */ $sticky = get_option( 'sticky_posts' ); /* Ordena los stickies poniendo los más recientes arriba*/ rsort( $sticky ); /* Coge los 2 stickies más nuevos (puedes cambiar el 3 por otro número) */ $sticky = array_slice( $sticky, 0, 3 ); /* Hace la query de los posts sticky */ query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); ?>
Tenemos que usar rsort()
para ordenar los posts sticky en orden inverso por ID de post (los más nuevos primero). Esto es debido a que los posts sticky se añaden teniendo en cuenta cuando se les ha habilitado esa capacidad de «sticky», no por su ID.
También tenemos que definir caller_get_posts
a 1 pues de otro modo se añadirían todos los stickies.
Por último, usamos $sticky = array_slice($sticky, 0, 3);
para limitar el número de stickies a mostrar, en este caso 3, que puedes cambiar a tu gusto.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Para no tener que crear categoría de destacado, yo solía modificar el query para que solicitara los post con tag de destacado en lugar de la categoría. Una mera idea, otra opción para no crear categoría.