Cómo mostrar publicaciones recientes en la página de inicio con HTML personalizado

5 dic 2011, 19:20:27
Vistas: 15.1K
Votos: 1

Estoy buscando mostrar un número x (indefinido) de publicaciones recientes (no más de 10) en mi página de inicio. Para cada publicación, me gustaría mostrar el título y un fragmento del contenido. Podría crear una consulta SQL para obtener esto, pero me preguntaba cuál es la función de WordPress para lograrlo. Lo más cercano que he encontrado es <?php wp_get_archives('type=postbypost&limit=10&format=html'); ?>. También me gustaría personalizar el formato HTML. Un ejemplo del resultado que deseo sería este:

<div id="posts">
    <section class="post">
        <h2><a href="[post uri]">[post title]</a></h2>
        <p>[post snippet]</p>
    </section>
    <section class="post">
        <h2><a href="[post uri]">[post title]</a></h2>
        <p>[post snippet]</p>
    </section>
</div>
0
Todas las respuestas a la pregunta 1
3
<div id="posts">

<?php

    // definir argumentos de la consulta
    $args = array(
        'posts_per_page' => 8, // tu número 'x' va aquí
        'nopaging' = true
        // posiblemente más argumentos aquí
    );

    // configurar nueva consulta
    $tyler_query = new WP_Query( $args );

    // recorrer las publicaciones encontradas
    while ( $tyler_query->have_posts() ) : $tyler_query->the_post();
        echo '<section class="post">'.
             '<h2><a href="'.
             get_permalink().
             '">'.
             get_the_title().
             '</a></h2><p>'.
             get_the_excerpt().
             '</p></section>';
    endwhile;

    // reiniciar datos de publicación
    wp_reset_postdata();

?>

</div>

Por defecto, un extracto tiene una longitud de 55 palabras. Para una longitud personalizada del extracto, añade lo siguiente al archivo functions.php de tu tema:

function tyler_excerpt_length( $length ) {
    return 70; // cambia el número de palabras a tu preferencia
}
add_filter( 'excerpt_length', 'tyler_excerpt_length' );

Si no estás satisfecho con el enlace "Continuar leyendo" por defecto al final del extracto, añade esto a functions.php:

function tyler_excerpt_more( $more ) {
    return 'Leer el artículo completo &gt;&gt;'; // de nuevo, cambia a tu gusto
}
add_filter( 'excerpt_more', 'tyler_excerpt_more' );

Si, dado que ya tienes el enlace de la publicación en el título, deseas que el enlace "más" del extracto no se muestre, haz que la función anterior devuelva una cadena vacía, es decir, return '';.

Lecturas adicionales:

5 dic 2011 20:03:25
Comentarios

Vaya, esta respuesta superó con creces mis expectativas. Ojalá pudiera votarla positivamente numerosas veces. Muchas gracias.

Tyler Crompton Tyler Crompton
6 dic 2011 04:29:50

http://codex.wordpress.org/Template_Tags/the_excerpt ¿Te referías a 55 palabras?

Tyler Crompton Tyler Crompton
6 dic 2011 04:33:16

@TylerCrompton ¡Palabras! Por supuesto, ¿en qué estaba pensando? ¿Y cuán informativos podrían ser 55 caracteres? Qué tonto fui.

Johannes Pille Johannes Pille
6 dic 2011 13:19:53