Usar sticky post como destacado en WordPress
publicado el 26.04.10 en Wordpress
Por lo general se utiliza una categoría para poder destacar posts en la home de nuestro blog en WordPress. Para evitar crear una categoría y utilizar una opción que ya viene incorporada en el CMS para diferenciar tipo de entradas podemos marcar a lo queramos destacar como sticky. La idea es crear dos querys, uno que tomará el post destacado (el último marcado como sticky) y otro qe listará el resto de los posts, incluyendo o no al destacado.
Manos al código. En nuestro index.php (o home.php) vamos a agregar el primer loop que va a llamar al post destacado:
<?php $sticky = get_option('sticky_posts');
query_posts('p=' . $sticky[0]); while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h2>
<?php the_content() ?>
<?php endwhile; wp_reset_query(); ?>
Esto carga directamene desde su ID nuestro post sticky más reciente. Ahora hay que cargar el resto de los posts, vamos a hacerlo primero incluyendo este post destacado pero respetando el orden cronológico.
<?php query_posts('caller_get_posts=1&showposts=10&paged=$paged'); while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h2>
<?php the_content() ?>
<?php endwhile; wp_reset_query(); ?>
Si queremos que el post destacado no aparezca, reemplazamos la llamada anterior por esta:
<?php
$args = array(
'showposts' => 10,
'post__not_in' => get_option('sticky_posts'),
'caller_get_posts'=>1,
'paged'=> $paged );
$my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h2>
<?php the_content() ?>
<?php endwhile; } wp_reset_query(); ?>
Seguramente esto requiere mucha personalización de su parte pero espero haya quedado claro.

