Una funzione interessante da poter implementare nel proprio blog è quella di far visualizzare gli ultimi articoli della stessa categoria quando si visualizza un post singolo. È un modo per poter servire meglio il lettore e suggerirgli qualcos’altro a cui può essere interessato relativamente ad uno specifico argomento.
Il codice base da personalizzare è il seguente:
<?php if (is_single()) { ?> <div class="mio-contenitore"> <h2>Ultimi 5 articoli in <?php the_category(' '); ?> </h2> <?php $category = get_the_category(); $cat = $category[0]->cat_ID; $myposts = get_posts("posts_per_page=5&category=$cat"); ?> <ul> <?php foreach($myposts as $post) : ?> <li> <a href="<?php the_permalink(); ?>" title="Vai all'articolo <?php echo get_the_title(); ?>"> <?php the_title(); ?> </a> </li> <?php endforeach; ?> </ul> </div> <?php } ?>
Questo codice, il cui posto ideale è in cima alla sidebar, viene eseguito solo se ci si trova in un articolo singolo, e non su una pagina statica (). Tutto il blocco viene inserito all’interno di un DIV di nome mio-contenitore, che ovviamente va personalizzato con uno stile già pronto. A seguire mostro le possibilità di personalizzazione, che vanno eseguite tutte sulla riga 9 di questo blocco di codice.
Cambiare il numero di post visualizzati
Se si desidera cambiare il numero di post visualizzati, va sostituito il valore 5 della riga 9 (così come anche il titolo della riga 3).
Visualizzare un elenco casuale di post
Se si preferisce visualizzare un elenco di post casuali, basta aggiungere alla fine della riga 9 &orderby=rand, vale a dire:
$myposts = get_posts("posts_per_page=5&category=$cat&orderby=rand");
Escludere dall’elenco il post più recente
Un’utile opzione potrebbe essere quella di escludere dall’elenco il post più recente. Basta aggiungere alla fine della riga 9 l’argomento &offset=1, che appunto sposta l’elenco di un post. Ecco la riga:
$myposts = get_posts("posts_per_page=5&category=$cat&offset=1");
Escludere dall’elenco il post che si sta visualizzando
Ma molto più utile, credo, sia escludere proprio il post che si sta visualizzando in questo momento. È sufficiente aggiungere l’opzione &exclude=$post->ID:
$myposts = get_posts("posts_per_page=5&category=$cat&exclude=$post->ID");