La navigazione tra i post può essere controllata inserendo nel tema alcune funzioni template di WordPress come: posts_nav_link(), previous_posts_link(), next_posts_link(), previous_post_link(), next_post_link().

Attenzione prima di modificare il tema crearne una copia di backup in modo da poterlo ripristinare in caso di errori.

Spostarsi tra elenchi di post

La navigazione tra i post nelle liste di post (homepage, archivi, risultati di una ricerca) può essere controllata con la funzione posts_nav_link() che mostra il collegamento alla serie di post successivi o precedenti.

<?php posts_nav_link(); ?>

Le funzioni template per la navigazione tra i post negli elenchi possono essere inserite in qualsiasi punto del tema tranne all’interno del ciclo di visualizzazione dei post.

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Ciclo di visualizzazione dei post --> 
<!-- … -->
<?php endwhile; ?>
<?php endif; ?> 
<?php posts_nav_link(); ?>

In genere queste funzioni si trovano alla fine del ciclo di visualizzazione dei post, come mostrato dall’esempio. I collegamenti visualizzati dalla funzione posts_nav_link() possono essere controllati con tre parametri:

  • il separatore tra i link (testo o codice html)
  • l’etichetta per i post precedenti
  • l’etichetta per i post successivi
<?php posts_nav_link('-', 'Precedenti', 'Successivi'); ?>

Per gestire in modo separato i collegamenti ai post precedenti e successivi è preferibile usare le funzioni previous_posts_link() e next_posts_link().

<?php previous_posts_link(); ?> - <?php next_posts_link(); ?>

Il testo dei collegamenti può essere controllato mediante i parametri delle due funzioni.

<?php previous_posts_link('Precedenti'); ?><?php next_posts_link('Successivi'); ?>

Separando i collegamenti ai post precedenti e successivi si può controllare meglio la loro posizione e il loro l’aspetto.

<div class="left">  
<?php next_posts_link(); ?>
</div>
<div class="right">  
<?php previous_posts_link(); ?>
</div>

Le funzioni previous_posts_link() e next_posts_link() accettano come argomento una stringa che può contenere testo e codice html.

<?php next_posts_link('<img src="images/next.png" />'); ?>

I collegamenti ai post precedenti o successivi vengono visualizzati solo nelle liste di post e mai nei singoli post.

La navigazione tra i post

La navigazione al post precedente o successivo rispetto a quello che si sta leggendo è fornita dalle funzioni previous_post_link() e next_post_link().

La navigazione tra i post

L’aspetto dei collegamenti di navigazione tra i post

Queste funzioni devono essere inserite all’interno del ciclo di visualizzazione dei post.

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Questo blocco viene eseguito per ciascun post visualizzato -->
<article <?php post_class(); ?>>  
<?php previous_post_link(); ?> - <?php next_post_link(); ?> 
</article>
<?php endwhile; ?>
<?php endif; ?>

Per evitare che il collegamento sia visualizzato anche nelle liste di post usare la funzione template is_single() o is_singular().

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Questo blocco viene eseguito per ciascun post visualizzato -->
<article <?php post_class(); ?>> 
<!-- ... -->
<?php if( is_single()): ?> 
<?php previous_post_link(); ?> - <?php next_post_link(); ?>
<?php endif; ?> 
</article>
<?php endwhile; ?>
<?php endif; ?>

Il testo del link mostrato dalle funzioni previous_post_link() e next_post_link() corrisponde al titolo del post precedente o successivo ma può essere controllato con i parametri passati alle due funzioni.

<?php previous_post_link('Post precedente: %link', ' %title'); ?> 
<?php next_post_link('Post successivo: %link', ' %title'); ?>

Anche le funzioni previous_post_link() e next_post_link() accettano, nella stringa passata come argomento, del codice html.

<?php if(is_single()): ?>
<?php previous_post_link('%link', '%title <img src="images/prev.png" />'); ?> - 
<?php next_post_link('%link', '%title <img src="images/next.png" />'); ?>
<?php endif; ?>

Altre informazioni sulla navigazione tra i post sono disponibili nella documentazione ufficiale di WordPress.