
✂️ Come modificare la lunghezza dell'estratto in WordPress
Visiti l’archivio di un blog e vedi «mattoni»: un post ha un annuncio che occupa mezzo schermo, un altro ha solo due righe scarne. Questo succede perché WordPress per impostazione predefinita taglia gli estratti a 55 parole, un numero inventato quasi due decenni fa e mai più toccato.
Il problema è che una lunghezza universale non va mai bene. Un sito di notizie ha bisogno di 20 parole, un longread di 80, un portfolio solo di 10. La buona notizia: puoi impostare la tua lunghezza senza plugin, usando un singolo filtro in functions.php. E senza mettere a rischio il sito.
💡 Panoramica rapida:
- Capire cos’è un estratto e perché 55 parole non sono una regola
- Cambiare la lunghezza con il filtro
excerpt_length(2 righe di codice) - Impostare lunghezze diverse per homepage, categorie e custom post type
- Scegliere un plugin se il codice non è un’opzione e scoprire cosa funziona nel 2026
- Trovare risposte: estratto vs «Read more», contenuti duplicati, annunci personalizzati
Cos’è un estratto e perché la sua lunghezza è importante
Un estratto è un riassunto automatico del post che WordPress genera dalle prime 55 parole del testo. Compare nei feed del blog, nelle pagine di categoria, nei risultati della ricerca interna e nei feed RSS. Se l’autore non ha compilato manualmente il campo «Estratto», entra in funzione il sistema automatico.
Il numero 55 arriva dalle prime versioni del CMS e non è cambiato dalla versione 2.7. All’epoca il post medio era di 300-400 parole e 55 erano un compromesso ragionevole. Oggi un articolo tipo su un techblog supera le 1500 parole e un estratto corto perde significato: i lettori non capiscono di cosa parla il post e i motori di ricerca vedono testo spezzato negli snippet.
Oltre all’estetica c’è un aspetto tecnico. Se un estratto si interrompe a metà frase, Google può usare quel frammento nella meta description e il tuo snippet nei risultati di ricerca appare sciatto. Un estratto pulito, sensato e di lunghezza definita risolve la situazione.
Cambiare la lunghezza con il filtro excerpt_length
Il metodo più affidabile è usare il filtro nativo excerpt_length. Esiste nel core di WordPress dalla versione 2.7.0 e non dipende da temi o plugin. Funziona ovunque venga chiamata la funzione the_excerpt().
Ecco il codice minimo per il file functions.php del tuo child theme:
1 /** 2 * Changes excerpt length to 30 words. 3 * 4 * @param int $length Current excerpt length. 5 * @return int New excerpt length. 6 */ 7 function mytheme_excerpt_length( $length ) { 8 return 30; 9 } 10 add_filter( 'excerpt_length', 'mytheme_excerpt_length', 999 );
Cosa conta qui:
- Priorità 999 è il dettaglio chiave. WordPress applica internamente il proprio filtro con la priorità predefinita (10). Se non specifichi una priorità alta, la tua callback viene eseguita prima di quella di sistema e viene sovrascritta con 55. 999 garantisce che il tuo filtro venga eseguito per ultimo.
- Restituisci un intero, solo intero. Una stringa
'30'provocherà un PHP Warning in modalità strict. - Child theme: non modificare il
functions.phpdel tema padre, le modifiche andranno perse con l’aggiornamento. Se non hai un child theme, creane uno oppure usa il plugin Code Snippets.
Il codice sopra cambia la lunghezza per tutte le chiamate a the_excerpt() sul sito. Il numero 30 è un esempio; sostituiscilo con il tuo. Per un sito di notizie sono tipiche 20-30 parole; per un blog analitico 50-70; per un portfolio 10-15.
Se il tuo sito gira su HTTPS e usa una versione PHP moderna (8.0+), puoi scriverlo in modo ancora più compatto con una arrow function:
1 add_filter( 'excerpt_length', fn( $length ) => 40, 999 );
Ma per compatibilità con progetti più vecchi, attieniti alla prima variante con funzione con nome.
Lunghezze diverse per pagine diverse
Un numero universale è comodo ma raramente è la soluzione ottimale. Nella homepage del blog devi agganciare i lettori con un riassunto esteso (60-70 parole), mentre in un widget «Post correlati» ti serve una riga breve di 15-20 parole. WordPress ti permette di impostare una logica condizionale tramite le funzioni standard di controllo del contesto:
1 function mytheme_conditional_excerpt_length( $length ) { 2 if ( is_front_page() && is_home() ) { 3 return 70; // Blog home page 4 } 5 if ( is_category() || is_tag() ) { 6 return 45; // Category and tag pages 7 } 8 if ( is_search() ) { 9 return 30; // Search page 10 } 11 if ( is_page_template( 'template-portfolio.php' ) ) { 12 return 15; // Portfolio template 13 } 14 return 55; // Everything else 15 } 16 add_filter( 'excerpt_length', 'mytheme_conditional_excerpt_length', 999 );
Questo approccio copre la stragrande maggioranza degli scenari reali. La stessa logica si applica ai custom post type tramite is_singular( 'product' ) o is_post_type_archive( 'portfolio' ).
Una sfumatura importante: non tutti i temi usano onestamente the_excerpt(). Alcuni temi premium (specie quelli più vecchi con page builder proprietari) chiamano direttamente wp_trim_words() o usano wrapper personalizzati. In questi casi il filtro excerpt_length non funzionerà. Se non è cambiato nulla dopo aver aggiunto il codice, apri il functions.php del tema e cerca chiamate alternative; di solito il problema si risolve sostituendo la funzione personalizzata con la funzione standard the_excerpt().
Plugin: ne vale la pena?
Il mercato dei plugin per la gestione degli estratti è piccolo; la maggior parte delle esigenze è risolta dal codice delle sezioni precedenti. Lo storicamente popolare Advanced Excerpt (oltre 100.000 installazioni attive in passato) non viene aggiornato né testato con le ultime versioni di WordPress dal 2024. Su WP 6.8+ il plugin non funziona e le recensioni degli utenti lo confermano. Installarlo nel 2026 non ha senso.
Cosa è effettivamente disponibile:
- Code Snippets è un plugin gratuito che permette di aggiungere codice PHP dal pannello di amministrazione senza modificare
functions.php. Funziona per qualsiasi snippet di questo articolo: incolli il filtroexcerpt_length, attivi, fatto. Vantaggio: non teme gli aggiornamenti del tema. Download: Code Snippets su WordPress.org. - WPCode è uno strumento più recente con un’interfaccia visuale per inserire snippet, logica condizionale e una libreria cloud di ricette già pronte. Se gestisci più siti e non vuoi duplicare codice, WPCode è più comodo.
Entrambi i plugin non sono specializzati specificamente sugli estratti; risolvono un problema più ampio. Ma per il nostro scopo è sufficiente: aggiungi il filtro una volta e te ne dimentichi.

Se desideri fermamente un’interfaccia GUI specifica per gli estratti (campi per la lunghezza, checkbox, selezione dei tag HTML), al 2026 non esiste un plugin separato e attivamente mantenuto con questa funzionalità nel repository di WordPress.org. Tutti quelli che esistevano in passato sono abbandonati o in conflitto con PHP 8.2+. In questa situazione, imparare il filtro excerpt_length è più affidabile: due righe di codice che non si romperanno con nessun aggiornamento del CMS.
Prima di passare alle domande comuni, ecco un breve video che mostra il processo di aggiunta del codice a un tema WordPress:
⁉️🤔 Domande comuni
Che differenza c’è tra estratto e il tag «Read more»?
Il tag
<!--more-->(pulsante «Read more») taglia il post nel punto in cui lo inserisci e conserva tutta la formattazione: immagini, liste, titoli. Un estratto è sempre testo semplice senza tag HTML (a meno che non si usi un plugin). «Read more» controlla la visualizzazione nella pagina del post stesso; l’estratto controlla la visualizzazione nelle pagine di archivio. Sono due meccanismi diversi che possono funzionare contemporaneamente.
L’estratto crea contenuti duplicati per la SEO?
No. Se l’estratto è generato dalla funzione
the_excerpt()nelle pagine di archivio, i motori di ricerca lo vedono comemeta descriptiondi quelle pagine, non come contenuto duplicato. Inoltre, un estratto configurato correttamente aiuta Google a formare uno snippet pertinente. I problemi di duplicazione sorgono solo se inserisci il testo completo del post sia nella pagina di archivio sia in quella singola senza un URL canonico.
Come imposto un testo di annuncio completamente personalizzato?
Nell’editor dei post di WordPress c’è un campo «Estratto». Se è compilato, il sistema usa il tuo testo al posto di quello automatico. Nell’editor classico abilita il campo tramite «Impostazioni schermo» in alto a destra. Nell’editor a blocchi (Gutenberg) usa la scheda laterale «Post» → «Estratto». Un estratto personalizzato ha la priorità su qualsiasi filtro
excerpt_length.
Posso conservare l’HTML negli estratti automatici?
Il filtro standard
excerpt_lengthnon gestisce i tag;wp_trim_excerpt()rimuove sempre l’HTML. Per conservare la formattazione serve un approccio diverso: o un plugin (ma nel 2026 non ne funziona nessuno) oppure sostituire il generatore standard di estratti tramite il filtrowp_trim_excerptcon codice proprio. Questa è una tecnica avanzata per sviluppatori.
Perché il filtro non funziona con il mio tema?
Tre motivi tipici: 1) il tema non chiama
the_excerpt()ma usa una funzione personalizzata (controlla i template archive.php, category.php, search.php); 2) la priorità del filtro è più bassa di quella del gestore interno di WordPress (usa999); 3) il filefunctions.phpè stato modificato nel tema padre anziché nel child theme e le modifiche non sono state recepite.
Cambiare la lunghezza dell’estratto: codice o plugin?
Il filtro excerpt_length copre le esigenze della stragrande maggioranza dei siti WordPress. Due righe in functions.php e la lunghezza dell’estratto diventa esattamente quella che vuoi: in homepage, nelle categorie, nella ricerca, per i custom post type. Non c’è bisogno di cercare plugin separati per gli estratti nel 2026; sono abbandonati o superflui.
Se non hai mai modificato functions.php, inizia con Code Snippets. È gratuito, sicuro e non dipende dagli aggiornamenti del tema. Una volta presa confidenza, la logica condizionale con is_front_page() e is_category() ti aprirà un livello di controllo che nessun plugin GUI per estratti ha mai offerto.



