Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Come aggiungere la paginazione numerica nel tema di WordPress

Volete aggiungere la paginazione numerica al vostro tema WordPress?

Come predefinito, i temi di WordPress aggiungono i colleghi Next / Previous in fondo alle pagine degli archivi. Il problema è che non sono molto facili da usare per gli utenti. Per questo motivo, molti blog famosi utilizzano la paginazione numerica per facilitare la navigazione delle pagine di archivio.

In questo articolo vi mostreremo come aggiungere la paginazione numerica nel vostro tema WordPress.

How to add numeric pagination in your WordPress theme

Perché aggiungere la paginazione numerica nel tema WordPress?

La maggior parte dei temi ha una pagina di archivio che mostra un elenco di articoli. Man mano che si pubblicano altri articoli del blog WordPress, la pagina dell’archivio si estende su più pagine.

I colleghi di paginazione aiutano i visitatori a spostarsi tra le pagine dell’archivio e di solito appaiono nella parte inferiore del sito web WordPress.

Alcuni temi di WordPress utilizzano i colleghi “Articoli meno recenti” e “Articoli più recenti” per la paginazione. Tuttavia, questo permette al visitatore di spostarsi in avanti e indietro solo di una pagina.

Inoltre, non mostra la posizione attuale del visitatore nell’archivio. Questo può rendere più difficile ai visitatori la navigazione nell’archivio del blog.

È qui che entra in gioco la paginazione numerica.

Invece di mostrare i colleghi “Più vecchio” e “Più nuovo”, la paginazione numerica mostra una serie di numeri che permettono ai visitatori di saltare a una pagina specifica dell’archivio.

La paginazione numerica può anche utilizzare delle evidenziazioni o dei colori diversi per mostrare il numero della pagina corrente, in modo che il visitatore sappia sempre esattamente dove si trova nell’archivio.

In WPBeginner, utilizziamo la paginazione numerica e mettiamo in evidenza il numero della pagina corrente in arancione. Inoltre, forniamo collegamenti diretti alle 4 pagine che circondano la pagina corrente del visitatore.

Abbiamo anche un collega all’ultima pagina del nostro archivio, in modo che i visitatori possano vedere rapidamente e facilmente i nostri primi articoli, come si può vedere nell’immagine seguente.

Numeric pagination links on the WPBeginner website

Secondo la nostra esperienza, questo tipo di paginazione numerica rende il sito più facile da navigare rispetto ai collegamenti predefiniti “Articoli meno recenti” e “Articoli più recenti”.

Se il tema WordPress ha la paginazione “Older” e “Newer”, consigliamo sempre di sostituirla con una paginazione numerica.

In questa guida copriremo due modi diversi per aggiungere la paginazione numerica nel vostro tema WordPress. Se preferite passare direttamente a un metodo particolare, potete utilizzare i colleghi qui sotto.

Metodo 1. Come aggiungere una paginazione numerica in WordPress usando WP-PageNavi

Il modo più semplice per aggiungere la paginazione numerica in WordPress è utilizzare il plugin WP-PageNavi.

Per utilizzare questo plugin, dovrete comunque apportare alcune modifiche al codice del vostro tema, ma è molto più facile rispetto al metodo del codice completo, perché WP-PageNavi vi dà il controllo completo sulla paginazione del vostro sito.

La prima cosa da fare è installare e attivare il plugin WP-PageNavi. Per maggiori dettagli, consultate la nostra guida passo passo su come installare un plugin di WordPress.

Dopo aver attivato il plugin, andare su Impostazioni ” PageNavi per configurare le impostazioni del plugin.

How to add numeric pagination in WordPress

Qui è possibile sostituire il testo predefinito della paginazione con un testo proprio. Ad esempio, è possibile modificare il testo che il sito web utilizza per i colleghi “Prima pagina” e “Ultima pagina”.

È possibile personalizzare anche i link della paginazione numerica.

Nella sezione “Numero di pagine da mostrare” è possibile scegliere quante pagine il plugin mostrerà nella sezione di paginazione del sito web.

The WP-PageNavi WordPress plugin

L’impostazione predefinita è 5, il che significa che WP-PageNavi mostrerà i collegamenti diretti a 5 pagine.

Come si può vedere nello screenshot qui sotto, se ci si trova sulla pagina 4, si vedranno i colleghi alle pagine 2, 3, 4, 5 e 6.

An example of numeric pagination in WordPress

È possibile che si vogliano mostrare più pagine o meno pagine. Per modificare questa impostazione, è sufficiente digitare il nuovo numero nel campo “Numero di pagine da mostrare”.

Di default, il plugin mostra diversi numeri più grandi. Ciò consente ai visitatori di avanzare di più pagine, facendo un solo clic.

Di default, il plugin mostra tre numeri più grandi che aumentano di 10 ogni volta. Ad esempio, 10, 20 e 30.

Volete usare un intervallo diverso, come 5 o 20? Basta digitare il nuovo intervallo nel campo “Mostra numeri di pagina più grandi in multipli di”.

Customizing the WordPress pagination settings

Ogni sito WordPress è diverso dall’altro, quindi è bene provare diverse impostazioni per vedere quali sono le impostazioni di paginazione che funzionano meglio per voi.

Se avete apportato delle modifiche alle impostazioni di WP-PageNavi, non dimenticate di scorrere fino in fondo alla pagina e di fare clic sul pulsante Salva modifiche.

Successivamente, è necessario aggiungere un template tagga nel tema di WordPress. A tale scopo, si consiglia di creare un tema child e di modificare il codice del tema child.

Creando un tema child, è possibile aggiornare il tema di WordPress in modo sicuro senza perdere la paginazione numerica personalizzata. Per saperne di più, consultate la nostra guida passo passo su come creare un tema child di WordPress.

Indipendentemente dal fatto che si scelga di modificare un tema child o genitore, è necessario un client FTP. Se è la prima volta che usate l’FTP, potete consultare la nostra guida completa su come connettersi al vostro sito usando l’FTP.

Una volta collegati al vostro account di hosting WordPress tramite FTP, siete pronti a modificare il codice del vostro tema WordPress.

Questi passaggi variano a seconda del tema di WordPress. Tuttavia, in genere è necessario modificare il codice del file index.php o archive.php, oltre a qualsiasi altro template del tema WordPress.

Basta aprire questi file e cercare i tagga previous_posts_link e next_posts_link.

Se si trovano questi tag, sostituirli con il seguente frammento di codice:

<?php wp_pagenavi(); ?>

Alcuni temi potrebbero non avere un tagga previous_posts_link o next_posts_link.

Se non riuscite a trovare questi tag nel vostro tema, cercate invece the_posts_navigation. Ad esempio, nel file archive.php del tema Twenty Twenty-One si trova quanto segue:

<?php /*twenty_twenty_one_the_posts_navigation();*/ 

Si può quindi sostituire questa riga con il seguente frammento di codice:

<?php wp_pagenavi(); ?>

Dopo aver apportato queste modifiche, salvare e chiudere tutti i file aperti del tema WordPress.

Ora, visitando la pagina dell’archivio di WordPress, si dovrebbe vedere la nuova paginazione numerica sul sito web.

A questo punto si può cambiare il colore e lo stile della paginazione numerica, in modo che si adatti meglio al tema o al brand del sito web.

È possibile farlo modificando il codice del plugin.

Tuttavia, si consiglia di incollare il codice di WP-PageNavi nel file style.css del tema e di apportare le modifiche all’interno del file del tema. In questo modo non si perderanno i personalizzati quando si aggiorna il plugin WP-PageNavi.

Per copiare il codice del plugin, andare su Impostazioni ” PageNavi. Trovare la sezione “Usa pagenavi-css.css” e fare clic sul pulsante “No” accanto.

Non dimenticate di fare clic sul pulsante “Salva le modifiche” per salvare le modifiche.

Changing your WordPress pagination styling

Quindi, andare su Plugin ” Editore di file di plugin.

Si può quindi aprire il menu a discesa “Seleziona plugin da modificare” e scegliere “WP-Page Navi”. Dopodiché, siete pronti a fare clic su “Seleziona”.

The WordPress code editor

Nel menu di destra, fate clic sul file pagenavi-css.css.

Quindi, copiare tutto il codice in questo file.

The WordPress plugin editor

Successivamente, basta andare su Aspetto ” Editore dei file del tema.

Nel menu di destra, fate clic sul file style.css del tema.

The WordPress theme editor

Ora è possibile incollare il codice pagenavi-css.css nel file style.css del tema e iniziare ad apportare le modifiche.

Vediamo un esempio. Ecco una versione modificata del codice di paginazione numerica da aggiungere al file style.css del tema:

wp-pagenavi {
    clear: both;
}
 
.wp-pagenavi a, .wp-pagenavi span {
    color: #FFF;
    text-decoration: none;
    background-color:#6FB7E9;
    border: 1px solid #B2D1E5;
    padding: 5px 5px;
    margin: 2px;
}
 
.wp-pagenavi a:hover, .wp-pagenavi span.current {
    border-color: #E9F2F9;
    background-color:#6FB7E9;
}
 
.wp-pagenavi span.current {
    font-weight: bold;
    background-color:#3C8DC5;
}

Nell’immagine seguente, si può vedere come apparirà la paginazione numerica sul sito.

Custom numeric pagination in a WordPress theme

Vale la pena di provare diversi stili per vedere qual è il migliore sul vostro sito web WordPress.

Quando si è soddisfatti dell’aspetto della paginazione numerica, fare clic sul pulsante Aggiorna file per salvare le modifiche.

Metodo 2. Come aggiungere manualmente la paginazione numerica nel tema di WordPress

Un’altra opzione è quella di aggiungere manualmente la paginazione numerica nel tema di WordPress utilizzando il codice.

Molti temi di WordPress sono dotati di collegamenti “Più vecchio” e “Più nuovo” integrati o di una paginazione numerica predefinita. Ad esempio, il popolare tema Astra aggiunge automaticamente la propria paginazione numerica alle pagine degli archivi, come si può vedere nell’immagine seguente.

Pagination in the Astra WordPress theme

È possibile utilizzare questo metodo per personalizzare la paginazione integrata di un tema. Ad esempio, si può cambiare lo stile per adattarlo meglio al proprio sito.

Per aggiungere manualmente la paginazione numerica, aprire il file functions.php del tema. Qui potete utilizzare un client FTP o il file manager del cPanel del vostro hosting WordPress. Se utilizzate l’FTP, potete consultare la nostra guida completa su come connettersi al vostro sito utilizzando l’FTP.

Una volta effettuata la connessione al sito, aprire il file functions.php e aggiungere il seguente codice:

function wpbeginner_numeric_posts_nav() {
 
    if( is_singular() )
        return;
 
    global $wp_query;
 
    /** Stop execution if there's only 1 page */
    if( $wp_query->max_num_pages <= 1 )
        return;
 
    $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
    $max   = intval( $wp_query->max_num_pages );
 
    /** Add current page to the array */
    if ( $paged >= 1 )
        $links[] = $paged;
 
    /** Add the pages around the current page to the array */
    if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
    }
 
    if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 2;
        $links[] = $paged + 1;
    }
 
    echo '<div class="navigation"><ul>' . "\n";
 
    /** Previous Post Link */
    if ( get_previous_posts_link() )
        printf( '<li>%s</li>' . "\n", get_previous_posts_link() );
 
    /** Link to first page, plus ellipses if necessary */
    if ( ! in_array( 1, $links ) ) {
        $class = 1 == $paged ? ' class="active"' : '';
 
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
 
        if ( ! in_array( 2, $links ) )
            echo '<li>…</li>';
    }
 
    /** Link to current page, plus 2 pages in either direction if necessary */
    sort( $links );
    foreach ( (array) $links as $link ) {
        $class = $paged == $link ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
    }
 
    /** Link to last page, plus ellipses if necessary */
    if ( ! in_array( $max, $links ) ) {
        if ( ! in_array( $max - 1, $links ) )
            echo '<li>…</li>' . "\n";
 
        $class = $paged == $max ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
    }
 
    /** Next Post Link */
    if ( get_next_posts_link() )
        printf( '<li>%s</li>' . "\n", get_next_posts_link() );
 
    echo '</ul></div>' . "\n";
 
}

Questo codice ottiene il numero di pagine, pronto per essere mostrato nel tema di WordPress.

I passi successivi variano a seconda del tema.

Se il tema non ha un modulo di paginazione predefinito, si può semplicemente aggiungere il seguente template nel file index.php, archive.php, category.php o in qualsiasi altra pagina in cui si voglia mostrare la paginazione numerica.

<?php wpbeginner_numeric_posts_nav(); ?>

Si tenga presente che il punto in cui si aggiunge il codice influisce sulla visualizzazione della paginazione numerica sul sito web.

In genere, si vuole mostrare la paginazione in fondo alle pagine dell’archivio, quindi di solito si vuole aggiungere il template tag al codice del footer.

Il tema ha già qualche modulo di paginazione, come ad esempio i link “Articoli meno recenti” e “Articoli più recenti”?

In questo caso, è necessario trovare il codice di paginazione e sostituirlo con lo snippet qui sopra.

Ad esempio, Ashe è uno dei migliori temi gratuiti per blog WordPress e aggiunge già i link di paginazione “Prima” e “Ultima pagina” alle pagine degli archivi.

Per sostituire questi collegamenti integrati con la paginazione numerica, è necessario modificare i file template/grid.php e template/blog-pagination.php del tema.

In ognuno di questi file, è sufficiente trovare la seguente sezione:

<?php get_template_part( 'templates/grid/blog', 'pagination' ); ?>

Si può quindi sostituire questa riga con il seguente frammento di codice:

<?php wpbeginner_numeric_posts_nav(); ?>

Una volta aggiunto il codice, non dimenticate di salvare le modifiche.

Il passo successivo è la creazione di una paginazione numerica personalizzata.

Per aiutare i visitatori a navigare nell’archivio, metteremo in evidenza il numero della pagina corrente con un colore diverso. A tale scopo, aprire il file style.css del tema e incollarvi il seguente codice:

.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
    color: #fff;
    text-decoration:none;
}
 
.navigation li {
    display: inline;
}
 
.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
    background-color: #6FB7E9;
    border-radius: 3px;
    cursor: pointer;
    padding: 12px;
    padding: 0.75rem;
}
 
.navigation li a:hover,
.navigation li.active a {
    background-color: #3C8DC5;
}

Dopo tutto ciò, è sufficiente salvare le modifiche facendo clic sul pulsante Aggiorna file.

Ora, se visitate la pagina dell’archivio, vedrete la paginazione numerica in diretta sul vostro sito web.

Manually adding numeric pagination in WordPress

Speriamo che questo articolo vi abbia aiutato a capire come aggiungere la paginazione numerica nel vostro tema WordPress. Potete anche consultare la nostra guida su come fare soldi online facendo blog con WordPress e su come creare un tema personalizzato per WordPress senza scrivere alcun codice.

Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

116 commentiLascia una risposta

  1. Sujal

    There’s little bug in last lines which shows next link. You’re missing $ sign at two places get_next_posts_link() . Can you please fix that so code works well for new visitors :-)

    /** Next Post Link */
    if ( $get_next_posts_link() )
    printf( ‘%s’ . “\n”, $get_next_posts_link() );

  2. Sandipan

    Not working. . After adding the code index.php links not working

    • WPBeginner Support

      Your theme may have some custom styling, you would want to reach out to your theme’s specific support and they should be able to assist.

      Admin

  3. Quy

    thanks.
    Normally, home.php will show up the loop content for Post page, but since my theme does not provide home.php by default so I put the wpbeginner_numeric_posts_nav(); at index.php (below endwhile;) and it works.

    • WPBeginner Support

      Thanks for sharing how you were able to solve the issue :)

      Admin

    • WPBeginner Support

      You’re welcome :)

      Admin

  4. Alexandre

    Awesome article, simple and straight to the point!

    It worked perfectly for me, thanks a lot!!

    • WPBeginner Support

      Glad our guide was helpful :)

      Admin

  5. ModGirl

    I’m using the wordpress theme “X Blog” and I’m trying to figure out how to add this to that theme. everything I try keeps giving me errors. not sure why the theme won’t work with this. any help would be appreciated. thanks

  6. Adam

    This is a really useful tutorial, thanks. I used the genesis code example with success!

    My one issue was that simply copying and pasting the code from this site caused an encoding error for where the ellipses go in the numbered pagination. So on the site it displayed a diamond/question mark character instead of the ellipsis. I ended up using the HTML Entity (decimal) ellipsis: … instead which fixed this error. This only occurred on one of the two sites implemented this code on probably due to differences in meta charset or something.

  7. Ilya

    Greetings from 2018! I have something cool for you, WordPress core the_posts_pagination() function.

  8. jagadeesh

    i have added the code but displaying at the top of website

  9. Sijo

    Pagination not working after page2. It’s showing 404 page when click 3 ,4 etc… I have used the same code above. How can i resolve this ?

  10. Jean Braithwaite

    I am using your manual method for pagination, and you say “add the following template tag in your theme’s index.php, archive.php, category.php, and any other archive page template”.

    The site is a regular website along with a blog which uses a custom post type.

    It worked well on my archive.php page, but I would also like to use it on my blog page, which is a page template, page-blog.php. I can’t get it to work there at all. Why is that? Is there something I can do to get it working?

  11. ziru

    hello, I added to some templates and my wordpress couldn’t work anymore, not even login in and my homepage turn to a blank page and seems the whole website break down, what can I do?

  12. Turab

    Love u for this. U’re a lifesaver.

  13. Subroto

    Thank you very much for this post.

  14. Ingy Anees

    This is working fine with me in custom post type but can’t get it to work with search results .. nothing is shown at all. and advice ?

  15. souno

    Very nice article and i have a question.

    How to show total number of pages at last? In your demo it shows “9”

    Thank You!

  16. renee

    awesome code – worked like a charm! thank you for sharing it

  17. Azamat

    How can I add pagination to the custom taxonomy terms list?

  18. Andy

    Like Rajath I had a few problems with the pagination not rendering well on mobiles. In my case the lines overlapped. I resolved this by adding a line height to the CSS:

    line-height: 2.5em;

  19. mostafa

    Hi, I ‘ve used this code for my theme (without wp-nav plugin) ,it works other pages except in front page .what is exactly the problem?

  20. Rajath

    Hi i`m using this pagination in my theme and it works fine in all pages and categories except in the pages where i`m using custom wp_query. I`ve read that you are using a code similar to the one in genesis framework and i`ve used wp_reset_query() but it isn`t working. Thanks in advance for the help.

  21. anuj sharma

    hi
    i m using your given code and paste in function .php and also add css in style.css but this shows pagination design but its not working

  22. JM

    Hello! First off, I want to thank you for posting this. I know that this post is now pretty old, but it is still very useful!

    The pagination displays and functions fine for the most part; but the first and last page links are missing for me. It does not matter which page I am on (first, second, third, etc.), no first page or last page links show up. Any ideas on how I can fix this?

    Thanks in advance for any help!

  23. Syed Hamza

    Numeric Pagination shows only on PC but doesn’t show on mobile. I want to show this pagination on both versions.
    How I can fix it?

    • JeffD

      Thank you so much for the excellent tutorial. I want to use the non-plugin solution (the php script), but with no truncation/ellipses for page links (instead of 1…2 3 4 5 6…10, I want to just show all pages all the time – 1 2 3 4 5 6 7 8 9 10). How can I modify the script to do this? Should be easy for you experts but not for me! Thank you in advance for any helps!

  24. Nelson

    This code is not working for me, are there any pointers

  25. Youssef

    Hi I want return default wp pagination in my theme” freshlife by theme junkie I don’t Like the numeric pagination because it show the total posts in my website . please wpbeginne help

  26. Bilal

    i want to paginate my products how can i do it

  27. Rajath

    Hi, NIce tutorial and your website have helped me in many issues while developing my own theme. I have opted for the manual pagination shown here instead of plugin. But the pagination is not responsive and looks bad when the screen size is reduced. How to make it responsive or are there any other alternatives(no plugins please).I`m not going to publish this theme so i`m building it just to suit my need…

    • WPBeginner Support

      Look at your WordPress theme’s stylesheet. Study how your theme handles responsiveness. Some themes use media queries to detect screen width and then adjust different elements accordingly. Some themes use relative widths to make sure that all elements inside their design layout are responsive to the screen width.

      Admin

      • Rajath

        I’m developing the theme. I’m unable to make the pagination responsive. So I just removed the padding around the links which make them to look like a button. Instead I left them like numbers which works fine in small screens too. Thank You for the reply.

  28. javad

    hi
    i used first code in function but WP language changed to unreadable words why????

  29. Gabriel Tellez

    Thanks man, is great.

  30. James

    I’m trying to remove the pagination from my homepage found below each summary post, to me it doesn’t look great, is there a way to do this.

  31. Aryan

    Actually i am new to wordpress but i know php good……i want to add a pagination from custom table in data base……

  32. Fasih

    the numbered pagination without the plugin is working fine on localhost but when i upload the files i cant see anything but when i check the inspect element, the only thing i found was an empty div containing the classes but with nothing inside it. i have uploaded all the files correctly and double checked but not successful. please guide me

  33. Marco Riesco

    Excelent!! thanx

  34. Moustafa

    This script does not work in the new WordPress 4.3.1
    omdat bij de oude versie heeft die script wel gewerkt en nu niet meer

    Pleas help…

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.