Paginasi sangat penting untuk situs WordPress dengan banyak halaman konten. Tanpa paginasi, halaman arsip akan memuat ribuan posting sekaligus, merusak kinerja dan membebani pengguna. WordPress menyediakan fungsi paginasi bawaan, tetapi memerlukan pengaturan yang tepat agar berfungsi dengan benar dengan kueri kustom.
Questa guida copre come implementare la paginazione in WordPress, dalla paginazione di base dei post fino allo scorrimento infinito avanzato basato su AJAX.
Paginazione Predefinita dei Post
WordPress gestisce la paginazione per la query principale automaticamente. La pagina Impostazioni > Lettura ti permette di impostare il numero di post per pagina. Le funzioni posts_nav_link() e paginate_links() generano i link di paginazione per la query principale. Usa the_posts_pagination() per link di paginazione numerati con evidenziazione della pagina corrente.
Per la navigazione tra i post all'interno di un singolo post — link al post precedente e successivo — usa previous_post_link() e next_post_link(). Questi collegano ai post adiacenti in ordine cronologico.
Paginazione Personalizzata con WP_Query
Quando crei una WP_Query personalizzata, la paginazione non funziona automaticamente. Imposta il parametro 'paged' sul numero della pagina corrente e usa max_num_pages dall'oggetto query per determinare il numero totale di pagine. Passa max_num_pages della query a paginate_links() per un output paginato corretto.
Ottieni il numero di pagina corrente con get_query_var('paged') o max(1, get_query_var('page')). Il primo parametro funziona per le pagine di archivio, il secondo per la paginazione dei singoli post all'interno di una singola pagina di contenuto.
Paginazione dei Commenti
I commenti possono essere paginati con la pagina Impostazioni > Discussione. Abilita la paginazione dei commenti e imposta il numero di commenti per pagina. WordPress gestisce la paginazione dei commenti automaticamente con paginate_comments_links(). Usa la funzione comments_nav_link() per visualizzare la navigazione commenti precedente/successiva.
La paginazione dei commenti usa get_query_var(‘cpage’) per la pagina corrente. L'ordine predefinito è quello dei commenti più vecchi per primi, ma puoi modificarlo nelle impostazioni di Discussione per mostrare prima i commenti più recenti.
Scroll Infinito AJAX
Lo scorrimento infinito carica più articoli quando l'utente scorre fino al fondo della pagina. Implementalo con l'API REST di WordPress o admin-ajax.php. Quando l'utente raggiunge il fondo, il tuo JavaScript invia una richiesta per la pagina successiva di articoli, li aggiunge alla lista esistente e aggiorna il contatore della pagina corrente.
Usa l'API Intersection Observer per rilevare quando l'utente raggiunge il fondo della pagina: è più efficiente dei listener di eventi scroll. Carica la pagina successiva tramite la REST API usando /wp/v2/posts?page=2&per_page=10. Renderizza i post restituiti lato client con JavaScript.
Considerazioni SEO
Il contenuto paginato crea problemi di contenuto duplicato se non gestito correttamente. Usa rel=”next” e rel=”prev” sulle pagine paginate per indicare la loro relazione ai motori di ricerca. La maggior parte dei plugin SEO li aggiunge automaticamente. Usa URL canonici che puntano alla prima pagina per consolidare i segnali di ranking.
Lo scroll infinito può causare problemi SEO perché i motori di ricerca potrebbero non indicizzare i contenuti caricati via AJAX. Usa il progressive enhancement — fornisci link di paginazione standard che funzionano senza JavaScript, poi arricchisci con lo scroll infinito. Questo garantisce che i motori di ricerca possano accedere a tutti i contenuti offrendo al contempo un'esperienza utente fluida.
Il punto fondamentale
La paginazione è essenziale per i siti WordPress con più pagine di contenuto. Usa le funzioni di paginazione integrate per la query principale, gestisci esplicitamente la paginazione nelle query personalizzate, pagina i commenti per thread di discussione lunghi e considera lo scroll infinito AJAX per un'esperienza utente moderna. Assicurati sempre che i contenuti paginati siano accessibili ai motori di ricerca tramite attributi rel corretti e progressive enhancement.




