
✂️ 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.phpdel tuo tema (Aspetto → Editor del tema →functions.php) oppure via FTP - Aggiungi alla fine del file (prima di
?>se presente):
1 function my_excerpt_length($length) { 2 return 110; 3 } 4 add_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:
1 function excerpt_length_category($length) { 2 if (in_category('Reviews')) { 3 return 20; 4 } else { 5 return 60; 6 } 7 } 8 add_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:
1 function 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 } 10 add_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.
3. Aggiungere un link «Leggi tutto» alla fine dell'estratto
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.

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:
1 function excerpt_readmore($more) { 2 return '... <a href="' . get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>'; 3 } 4 add_filter('excerpt_more', 'excerpt_readmore');
Cosa puoi modificare:
- Testo del link, sostituisci
Read Morecon la tua versione, ad esempioContinue readingoLearn more - Classe CSS,
readmorenell'attributoclasspuò 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:
1 function wploop_pages_excerpt() { 2 add_post_type_support('page', 'excerpt'); 3 } 4 add_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.

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 è
…(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

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 interrompethe_content()in un punto specifico. Gli estratti compaiono negli elenchi degli articoli e nei feed RSS, il tag more funziona solo dove si usathe_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 è presentethe_content(), gli estratti manuali vengono ignorati. Sostituisci conthe_excerpt()oppure usa una costruzione condizionaleif (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 dithe_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, infunctions.php:
1 function disable_excerpt_on_home($excerpt) { 2 if (is_home()) { 3 return ''; 4 } 5 return $excerpt; 6 } 7 add_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



