Visualizzare gli ultimi articoli della stessa categoria

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 (<?php if (is_single()) { ?>). 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-&gt;ID");