Come visualizzare i post recenti nella home page con HTML personalizzato
Sto cercando di visualizzare un numero x
(da decidere) di post recenti (massimo 10) nella mia home page. Per ogni post, vorrei mostrare il titolo e un estratto del contenuto. Potrei creare una query SQL personalizzata, ma mi chiedevo quale sia la funzione WordPress per ottenere questo risultato. La soluzione più vicina che ho trovato è <?php wp_get_archives('type=postbypost&limit=10&format=html'); ?>
. Vorrei anche poter personalizzare il formato HTML. Un esempio dell'output che desidero ottenere è il seguente:
<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>

<div id="posts">
<?php
// definisce gli argomenti della query
$args = array(
'posts_per_page' => 8, // qui va il tuo numero 'x'
'nopaging' = true
// eventualmente altri argomenti qui
);
// imposta la nuova query
$tyler_query = new WP_Query( $args );
// ciclo attraverso i post trovati
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;
// resetta i dati del post
wp_reset_postdata();
?>
</div>
Per default un estratto è composto da 55 parole. Per una lunghezza personalizzata dell'estratto, inserisci questo nel file functions.php del tuo tema:
function tyler_excerpt_length( $length ) {
return 70; // cambia il numero di parole a tuo piacimento
}
add_filter( 'excerpt_length', 'tyler_excerpt_length' );
Se non sei soddisfatto del link "Continua a leggere" predefinito alla fine dell'estratto, inserisci questo in functions.php:
function tyler_excerpt_more( $more ) {
return 'Leggi tutto il post >>'; // anche qui, cambia a tuo piacimento
}
add_filter( 'excerpt_more', 'tyler_excerpt_more' );
Se, dato che hai già il link al post nel titolo, vuoi che il link "altro" dell'estratto non venga mostrato, fai in modo che la funzione sopra restituisca una stringa vuota, cioè return '';
.
Ulteriori letture:

Wow, questa risposta ha superato di gran lunga le mie aspettative. Vorrei poter votarla più volte. Grazie mille.

http://codex.wordpress.org/Template_Tags/the_excerpt Intendevi 55 parole?
