Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

✂️ 5 Consigli per personalizzare gli estratti in WordPress

✂️ 5 Consigli per personalizzare gli estratti in WordPress

Atterri sulla homepage del tuo blog e vedi enormi blocchi di post che si estendono per tre schermate. Un lettore non scorrerà tre schermate per un singolo articolo, se ne va. Oppure il contrario: le anteprime si interrompono a metà frase, il link «Leggi tutto» non compare e il feed RSS sembra un insieme di frammenti di frasi senza inizio né fine.

Di default, WordPress taglia gli estratti alle prime 55 parole e aggiunge dei puntini di sospensione standard. Nessuna impostazione per la lunghezza, nessuna personalizzazione del testo del link e gli estratti non sono nemmeno disponibili per le Pagine. Tutto questo si può sistemare, ma non spuntando caselle, bensì aggiungendo qualche riga di codice.

Ecco 5 tecniche funzionanti: dalla modifica della lunghezza dell'estratto per l'intero sito alla regolazione fine per categoria e all'inserimento automatico di un link «Leggi tutto». Ognuna con uno snippet pronto da copiare e incollare in functions.php.

💡 Panoramica rapida:

  • Modificare la lunghezza dell'estratto per l'intero sito con una funzione in functions.php
  • Impostare lunghezze diverse per categorie diverse usando la condizione in_category()
  • Aggiungere un link «Leggi tutto» alla fine di ogni estratto
  • Abilitare gli estratti per le Pagine di WordPress con una riga di codice
  • Gestire gli estratti senza programmare usando il plugin Advanced Excerpt

Cosa sono gli estratti in WordPress e come funzionano

Un estratto è una breve descrizione di un post che compare negli elenchi dei post: in homepage, negli archivi delle categorie, nei risultati di ricerca e negli RSS. A differenza del tag <!--more-->, che taglia il contenuto in un punto arbitrario, l'estratto è un'entità indipendente: WordPress prende il tuo testo manuale dal metabox «Estratto» oppure lo genera automaticamente dalle prime 55 parole del post.

Gli estratti manuali hanno sempre la priorità. Se hai compilato il campo «Estratto» nell'editor, il sistema mostrerà esattamente quello, ignorando il taglio automatico. Questo dà il pieno controllo: puoi scrivere un riassunto sensato invece di accontentarti delle prime due frasi che capitano all'inizio del testo.

Il problema è che il metabox «Estratto» è nascosto di default. Si abilita in «Impostazioni schermata» (pulsante in alto nella pagina di modifica del post), spunta la casella accanto a «Estratto» e il campo comparirà sotto l'editor. Poi inizia la personalizzazione: le cinque tecniche qui sotto coprono tutti gli scenari tipici.

1. Modificare la lunghezza dell'estratto tramite functions.php

Questa è la base. WordPress di default taglia a 55 parole, non abbastanza per un'anteprima chiara ma sufficienti perché un lettore capisca l'argomento. Se ti servono più (o meno) parole, il filtro excerpt_length risolve il problema con una funzione.

Cosa fa il codice: sovrascrive il numero di parole che WordPress restituisce in the_excerpt(). Non tocca gli estratti manuali: se hai compilato il campo nell'editor, verrà mostrato così com'è.

  • Apri functions.php del tuo tema (Aspetto → Editor del tema → functions.php) oppure via FTP
  • Aggiungi alla fine del file (prima di ?> se presente):
1function my_excerpt_length($length) {
2 return 110;
3}
4add_filter('excerpt_length', 'my_excerpt_length');
  • Salva il file

Il numero 110 è il conteggio delle parole. Per un blog tipico, 80-120 parole danno 3-4 frasi, abbastanza per un'anteprima sensata senza appesantire la homepage. Anche i lettori RSS lo apprezzeranno: hanno i loro limiti e un estratto troppo lungo potrebbe essere tagliato in modo più aggressivo di quanto avevi previsto.

Se stai usando un tema a blocchi (Block Theme, FSE), functions.php potrebbe mancare o non funzionare come previsto. In questo caso, crea un tema child o usa il plugin Code Snippets, che aggiunge snippet senza modificare i file del tema.

2. Lunghezze diverse dell'estratto per categorie diverse

Le notizie richiedono 30 parole, mentre recensioni e guide ne richiedono 100-120. Il filtro excerpt_length nella sua versione base dà un valore unico per tutto il sito, non è flessibile. Il codice seguente separa la lunghezza per categoria.

Scenario A, una categoria con una lunghezza speciale. Hai una categoria «Recensioni» in cui gli estratti devono essere più corti:

1function excerpt_length_category($length) {
2 if (in_category('Reviews')) {
3 return 20;
4 } else {
5 return 60;
6 }
7}
8add_filter('excerpt_length', 'excerpt_length_category');

Sostituisci Reviews con lo slug della tua categoria, i numeri con quelli che ti servono.

Scenario B, più categorie con lunghezze diverse. Una cascata if/elseif/else copre tre livelli: una categoria, un gruppo di categorie e tutto il resto:

1function excerpt_length_category($length) {
2 if (in_category('Review')) {
3 return 35;
4 } elseif (in_category(array('News', 'Videos', 'Editorial'))) {
5 return 60;
6 } else {
7 return 55;
8 }
9}
10add_filter('excerpt_length', 'excerpt_length_category');

in_category() accetta uno slug di categoria (stringa) o un array di slug. Le condizioni sono verificate in ordine, la prima corrispondenza si attiva. Nell'esempio sopra: i post di «Review» ricevono 35 parole, quelli di «News», «Videos» e «Editorial» ne ricevono 60, tutto il resto ne riceve 55.

Dopo aver salvato, controlla la homepage e un paio di pagine di categoria: le lunghezze degli estratti dovrebbero differire a seconda della categoria a cui il post è assegnato.

L'estratto si interrompe e i lettori non sempre capiscono che si tratta solo di un'anteprima, non dell'intero articolo. Un link alla fine dell'estratto risolve il problema: un invito esplicito a cliccare e leggere per intero.

Esempio di link Leggi tutto al termine di un estratto WordPress

WordPress di default mette [...] dove taglia, ma non è un link. Il filtro excerpt_more sostituisce i puntini di sospensione con una stringa personalizzata contenente HTML:

1function excerpt_readmore($more) {
2 return '... <a href="' . get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>';
3}
4add_filter('excerpt_more', 'excerpt_readmore');

Cosa puoi modificare:

  • Testo del link, sostituisci Read More con la tua versione, ad esempio Continue reading o Learn more
  • Classe CSS, readmore nell'attributo class può essere sostituita con la tua e stilizzata via CSS (colore, dimensione, spaziatura, sottolineatura)
  • Separatore, i puntini di sospensione con spazio '... ' prima del tag <a> possono essere rimossi o sostituiti con | o ,

Dopo aver salvato, apri la homepage del blog o un archivio: ogni estratto avrà alla fine un link cliccabile al post completo. Funziona anche negli RSS (la maggior parte dei lettori mostra correttamente i link HTML).

4. Abilitare gli estratti per le Pagine di WordPress

Le Pagine in WordPress non supportano gli estratti di default. Il tipo di post page non è registrato con il supporto per excerpt e il metabox non compare nell'editor, anche se lo abiliti in «Impostazioni schermata». Ma a volte serve: una landing page con anteprime di pagine figlie, output personalizzato via WP_Query, pagine di servizio come card.

La soluzione è una funzione che aggiunge il supporto per l'estratto al tipo di post page:

1function wploop_pages_excerpt() {
2 add_post_type_support('page', 'excerpt');
3}
4add_action('init', 'wploop_pages_excerpt');

Dopo aver salvato functions.php:

  • Andate nell'editor di una pagina qualsiasi
  • Cliccate su «Opzioni schermo» in alto
  • Spuntate la casella «Estratto», ora è presente
  • Scorrete la pagina in basso, il campo dell'estratto è comparso

Se state usando un custom post type (CPT), sostituite page con lo slug del vostro CPT, il funzionamento è lo stesso. Quando registrate un CPT tramite register_post_type() potete specificare subito 'supports' => array(..., 'excerpt') ed evitare codice aggiuntivo.

5. Gestire gli estratti con il plugin Advanced Excerpt

Non vuoi mettere mano al codice? Il plugin Advanced Excerpt offre un controllo visivo su tutti gli aspetti degli estratti tramite pannello di amministrazione.

Pagina delle impostazioni del plugin Advanced Excerpt nell'amministrazione di WordPress

Dopo installazione e attivazione (gratuito, dal repository WordPress), nel menu «Impostazioni» compare una pagina Advanced Excerpt con le seguenti opzioni:

  • Lunghezza estratto, in caratteri o parole. I caratteri sono più precisi per il controllo del layout, le parole per la leggibilità
  • Ellissi, il simbolo o codice HTML che conclude l'estratto. Il valore predefinito è &hellip; (puntini di sospensione ). Può essere sostituito con [...], una freccia, un'icona o lasciato vuoto
  • Metodo di troncamento, per caratteri (una parola potrebbe essere tagliata a metà) o per frasi (sempre una frase completa, ma l'estratto sarà più lungo del limite indicato)
  • Link «Leggi tutto», attiva/disattiva, imposta il testo, racchiudi in HTML personalizzato
  • Non mostrare estratti manuali, se attivato, il plugin genera sempre estratti automatici, anche se hai compilato il campo manualmente
  • Rimuovi shortcode dall'estratto, conviene tenerlo attivato così che [contact-form-7] o [shortcode] non compaiano nell'anteprima
  • Filtro, scegli quale funzione il tema utilizza per produrre gli estratti: the_excerpt(), the_content() o entrambe. Se non sei sicuro, lascia entrambe le caselle selezionate
Impostazioni di filtraggio aggiuntive nel plugin Advanced Excerpt

Il plugin usa gli stessi hook excerpt_length e excerpt_more del codice manuale dei suggerimenti 1-3, ma li racchiude in un'interfaccia. La documentazione per sviluppatori su GitHub Wiki descrive i filtri per un'integrazione personalizzata.

Nel 2026, il plugin è attivo su oltre 80.000 siti ma si aggiorna raramente: l'ultima release è uscita a gennaio 2024 ed è testata fino a WordPress 6.4. Prima di installarlo su una versione fresca di WordPress, verifica la compatibilità in un ambiente di staging.

Prima di passare alle domande frequenti, un breve video su come lavorare con gli estratti in WordPress nella pratica:

⁉️🤔 Domande frequenti

In cosa un estratto manuale differisce dal tag <!--more-->?

L'estratto è un campo separato che viene prodotto tramite la funzione the_excerpt() nei template del tema. Il tag <!--more--> si inserisce nel corpo dell'articolo e interrompe the_content() in un punto specifico. Gli estratti compaiono negli elenchi degli articoli e nei feed RSS, il tag more funziona solo dove si usa the_content(). Per un riepilogo breve negli archivi, usa gli estratti; per tagliare un articolo lungo in homepage, il tag more è sufficiente.

Perché l'estratto non compare anche se l'ho scritto nell'editor?

Il tema non chiama the_excerpt() nel template richiesto. Verifica i template archive.php, category.php, home.php e search.php. Se è presente the_content(), gli estratti manuali vengono ignorati. Sostituisci con the_excerpt() oppure usa una costruzione condizionale if (has_excerpt()) { the_excerpt(); } else { the_content(); }.

Posso mostrare una miniatura dell'articolo accanto all'estratto?

Sì, il tema deve chiamare the_post_thumbnail() prima di the_excerpt() nel loop. La maggior parte dei temi WordPress moderni lo fa di default. In caso contrario, aggiungi la chiamata alla miniatura nel template prima dell'estratto. Per un markup personalizzato, racchiudi entrambe le chiamate in <div class="post-card"> e applica lo stile via CSS.

Come rimuovo gli estratti solo dalla homepage, mantenendoli negli archivi?

Usa il tag condizionale is_home() all'interno del filtro. Per esempio, in functions.php:

1 function disable_excerpt_on_home($excerpt) {
2 if (is_home()) {
3 return '';
4 }
5 return $excerpt;
6 }
7add_filter('get_the_excerpt', 'disable_excerpt_on_home');

Per impostazioni più precise per tipo di pagina, categoria o tipo di contenuto, usa il plugin Advanced Excerpt del suggerimento 5: le sue impostazioni hanno caselle «Disattiva su...» per homepage, archivi, ricerca e singole pagine.

Cosa fare con gli estratti da subito

Ordine di implementazione, dal semplice al complesso. Inizia con il suggerimento 1: una funzione, un numero e la lunghezza degli estratti su tutto il sito è già sotto controllo. Poi aggiungi il link «Leggi tutto» (suggerimento 3), fondamentale per la cliccabilità in homepage e nei feed RSS. Se gestisci un blog con sezioni di formati diversi, il suggerimento 2 sulla lunghezza per categoria eliminerà la dissonanza tra notizie e articoli lunghi.

Usa il plugin Advanced Excerpt (suggerimento 5) se vuoi evitare del tutto il codice o se il tuo tema utilizza un modo non standard di produrre i contenuti e i filtri excerpt_length/excerpt_more non vengono attivati. Negli altri casi, il codice da functions.php è più affidabile: meno dipendenze, non crea carico, funziona con qualsiasi tema.

1