Di default la paginazione degli articoli  in WordPress prevede in home page i link “precedente” e “successivo”. Vediamo oggi come avere una paginazione numerica senza usare i vari plugin tipo Pagenavi agendo come al solito via codice.

Semplice codice in functions.php

Apri come al solito functions.php e inserisci il codice seguente:

// Pagenavi
function kode_pagenavi( $p = 10 ) { // pagine da visualizzare prima e dopo la pagina corrente
if ( is_singular() ) return;
global $wp_query, $paged;
$max_page = $wp_query->max_num_pages;
if ( $max_page == 1 ) return;
if ( empty( $paged ) ) $paged = 1;
echo '<span class="meta-normal">Pagina &rarr; ' . $paged . ' di ' . $max_page . '</span>';
if ( $paged > $p + 1 ) p_link( 1, 'Prima' );
if ( $paged > $p + 2 ) echo '&larr;';
for( $i = $paged - $p; $i <= $paged + $p; $i++ ) {
if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers currentpage'>{$i}</span> " : p_link( $i );
}
if ( $paged < $max_page - $p - 1 ) echo '&rarr;';
if ( $paged < $max_page - $p ) p_link( $max_page, 'Ultima' );
}
function p_link( $i, $title = '' ) {
if ( $title == '' ) $title = "Pagina &rarr; {$i}";
echo "<span class='page-numbers'><a href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$i}</a></span>";
}

Ora richiama la funzione nelle pagine dei vari template, per esempio in index.php inserendo questo codice:

<div class="navigation"><?php kode_pagenavi(); ?></div>

Aggiungiamo un po di style

Come base di partenza puoi usare l’esempio che ti propongo qui di seguito, si tratta dello style in uso su WPStyle. Puoi partire da qui per personalizzarlo a piacere.

/* Pagenavi */
.navigation{margin-top:10px;height:25px;font-size:13px}
.navigation a{color:#595959}
.navigation a:hover{color:#8F8F8F;text-decoration:none}
.page-numbers a:link{background:#DEDEDE;color:#666666;padding:4px 6px 4px 6px;margin-right:4px;}
.page-numbers a:hover{background:#BFBFBF;color:#fff}
.currentpage, .currentpage a:hover{background:#BFBFBF;color:#757575;padding:4px 6px 4px 6px}

Buona Pagenavi a todos!