Cum să afișezi postări recente pe pagina principală cu HTML personalizat

5 dec. 2011, 19:20:27
Vizualizări: 15.1K
Voturi: 1

Caut să afișez x (nedecis) număr de postări recente (nu mai mult de 10) pe pagina mea principală. Pentru fiecare postare, aș dori să afișez titlul și un fragment din conținut. Pot să scriu singur o interogare SQL pentru asta, dar mă întrebam care este funcția WordPress pentru a obține acest lucru. Cel mai aproape am ajuns cu <?php wp_get_archives('type=postbypost&limit=10&format=html'); ?>. Aș dori de asemenea să personalizez formatul HTML. Un exemplu al rezultatului pe care îl doresc arată astfel:

<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
Toate răspunsurile la întrebare 1
3
<div id="posts">

<?php

    // definirea argumentelor interogării
    $args = array(
        'posts_per_page' => 8, // aici puneți numărul 'x' dorit
        'nopaging' = true
        // posibil și alte argumente aici
    );

    // inițializarea noii interogări
    $tyler_query = new WP_Query( $args );

    // buclă prin postările găsite
    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;

    // resetarea datelor postării
    wp_reset_postdata();

?>

</div>

În mod implicit, un fragment (excerpt) are o lungime de 55 de cuvinte. Pentru a personaliza lungimea fragmentului, adăugați următoarele în fișierul functions.php al temei:

function tyler_excerpt_length( $length ) {
    return 70; // schimbați numărul de cuvinte după preferință
}
add_filter( 'excerpt_length', 'tyler_excerpt_length' );

Dacă nu sunteți mulțumit de link-ul implicit "Citește mai mult" de la sfârșitul fragmentului, adăugați acest cod în functions.php:

function tyler_excerpt_more( $more ) {
    return 'Citește întregul articol &gt;&gt;'; // schimbați textul după preferință
}
add_filter( 'excerpt_more', 'tyler_excerpt_more' );

Dacă, deoarece aveți deja link-ul către articol în titlu, doriți să ascundeți link-ul "more" din fragment, returnați un șir gol în funcția de mai sus, adică return '';.

Lectură suplimentară:

5 dec. 2011 20:03:25
Comentarii

Uau, acest răspuns a depășit cu mult așteptările mele. Aș dori să pot vota acest lucru de mai multe ori. Mulțumesc mult.

Tyler Crompton Tyler Crompton
6 dec. 2011 04:29:50

http://codex.wordpress.org/Template_Tags/the_excerpt Te referi la 55 de cuvinte?

Tyler Crompton Tyler Crompton
6 dec. 2011 04:33:16

@TylerCrompton Cuvinte! Desigur, la ce mă gândeam. Cât de informativ ar putea fi 55 de caractere? Ce prost am fost.

Johannes Pille Johannes Pille
6 dec. 2011 13:19:53