Quando abbiamo lanciato il nostro primo sito WordPress ricco di contenuti, non avremmo mai pensato che i titoli dei post del blog sarebbero stati un problema. Alcuni dei nostri titoli più lunghi rompevano il nostro bellissimo layout, mentre altri semplicemente sembravano disordinati sui dispositivi mobili.
Attraverso anni di gestione di più siti WordPress e di aiuto ai proprietari di siti web, abbiamo scoperto che accorciare i titoli dei post aiuta a garantire un aspetto coerente e raffinato che cattura l'attenzione del tuo pubblico.
In questa guida, condivideremo tecniche efficaci per accorciare automaticamente i titoli dei tuoi blog WordPress con PHP, aiutandoti a mantenere tutto dall'aspetto nitido.

Perché troncare i titoli dei post in WordPress con PHP?
Troncare i titoli dei post in WordPress con PHP ti dà un maggiore controllo sulla lunghezza dei titoli dei tuoi post e su come vengono visualizzati sul tuo sito web.
Ad esempio, potresti voler tagliare i titoli dei post lunghi sulla tua homepage in modo che non rovinino il design del tuo blog WordPress.

Fare ciò aiuta anche a mantenere il tuo blog visivamente gradevole e facile da navigare per i tuoi lettori.
Nota: Se il tuo obiettivo è ottimizzare i tuoi post del blog per la SEO utilizzando titoli più brevi, la troncatura potrebbe non essere necessaria. Invece, un plugin SEO per WordPress può semplificare la creazione di tag di titolo SEO brevi ed efficaci.
Consigliamo All in One SEO (AIOSEO) perché ti consente di creare titoli SEO personalizzati per le pagine dei risultati di ricerca, mantenendo comunque titoli dei post più lunghi per i visitatori del tuo sito.
Per maggiori dettagli, consulta la nostra guida definitiva su come configurare correttamente AIOSEO.
Ora, esploriamo due modi per troncare i titoli dei post di WordPress sul tuo sito utilizzando PHP:
- Metodo 1: Troncare i titoli dei post di WordPress con una funzione di WordPress
- Metodo 2: Troncare i titoli dei post di WordPress con PHP modificando i file del tema di WordPress
Metodo 1: Troncare i titoli dei post di WordPress con una funzione di WordPress
Il modo più semplice per troncare i titoli dei post di WordPress in WordPress è aggiungere codice PHP ai tuoi file di WordPress. Se non l'hai mai fatto prima, consulta la nostra guida su come copiare e incollare codice in WordPress.
Molti tutorial ti diranno di aggiungere codice direttamente al file functions.php del tuo tema. Tuttavia, qualsiasi errore potrebbe causare problemi o persino bloccare il tuo sito.
Ecco perché consigliamo invece di utilizzare il plugin gratuito WPCode. È uno strumento utile che rende facile aggiungere e gestire codice personalizzato sul tuo sito WordPress, senza modificare direttamente i file del tema.
Su WPBeginner, ci affidiamo al plugin per aggiungere e gestire i nostri snippet di codice personalizzati. Puoi consultare la nostra recensione completa di WPCode per saperne di più.
Innanzitutto, devi installare e attivare il plugin gratuito WPCode. Se hai bisogno di aiuto con questo, consulta la nostra guida passo passo su come installare un plugin WordPress.
Dopo l'attivazione, seleziona Code Snippets » + Add Snippet dalla barra laterale di amministrazione. Successivamente, passa il mouse sull'opzione 'Add Your Custom Code (New Snippet)' e fai clic sul pulsante 'Add Custom Snippet' che appare.

Questo aprirà una nuova pagina dove potrai digitare un titolo per lo snippet e quindi aggiungere il codice.
Copia e incolla semplicemente il seguente codice nel riquadro Code Preview in WPCode.
function max_title_length( $title ) {
$max = 35;
if( strlen( $title ) > $max ) {
return substr( $title, 0, $max ). " …";
} else {
return $title;
}
}
add_filter( 'the_title', 'max_title_length');
Ecco come dovrebbe apparire una volta aggiunto il codice.

Questo codice verrà eseguito all'interno del tuo loop di post di WordPress e accorcerà i titoli dei tuoi post del blog a 35 caratteri. Per modificare la lunghezza del tuo titolo, imposta semplicemente la variabile $max alla lunghezza del titolo preferita.
Se hai bisogno di aiuto, consulta il nostro articolo su come aggiungere codice personalizzato in WordPress.
Successivamente, devi scegliere 'PHP Snippet' dal menu a discesa Tipo di codice.
Infine, dovrai attivare l'impostazione Attivo e quindi salvare lo snippet facendo clic sul pulsante 'Salva snippet'.

Ora che lo snippet di codice è attivo, i titoli dei tuoi post del blog verranno abbreviati ovunque appaiano sul tuo sito WordPress.
Come mostrato nello screenshot qui sotto, il titolo si interrompe a 35 caratteri ed è seguito da puntini '…' alla fine.

Metodo 2: Troncare i titoli dei post di WordPress con PHP modificando i file del tema di WordPress
Un altro modo per troncare i titoli dei post di WordPress è aggiungere codice direttamente ai file del tuo tema WordPress.
Questo metodo ti dà un maggiore controllo su dove vengono abbreviati i tuoi titoli. Ad esempio, potresti voler troncare i titoli solo sulla tua homepage, ma visualizzare il titolo completo sul post del blog.
⚠️ Suggerimento Pro: Prima di continuare con il Metodo 2, ricorda che l'aggiornamento del tuo tema può sovrascrivere le modifiche personalizzate.
Per mantenere il tuo sito aggiornato senza perdere le tue personalizzazioni, consulta la nostra guida su come aggiornare il tuo tema WordPress senza perdere le personalizzazioni.
Per fare ciò, dovrai aggiungere il codice PHP direttamente ai file del tema WordPress dove desideri troncare i titoli dei tuoi post del blog.
Ad esempio, puoi aggiungere lo snippet di codice seguente al tuo file index.php per sostituire il tag the_title esistente all'interno del tuo loop dei post di WordPress per modificare la lunghezza del titolo a livello di sito:
<a href="<?php the_permalink() ?>">
<?php
$thetitle = $post->post_title; /* or you can use get_the_title() */
$getlength = strlen($thetitle);
$thelength = 25;
echo substr($thetitle, 0, $thelength);
if ($getlength > $thelength) echo "...";
?>
</a>
Questo codice imposta la lunghezza del titolo del post a 25 caratteri. Se la lunghezza del titolo è superiore a 25 caratteri, il titolo verrà troncato dopo 25 caratteri e verrà aggiunto un'ellissi '…' alla fine.
Per modificare la lunghezza dei caratteri per il tuo sito web, cambia semplicemente la variabile $thelength con il conteggio dei caratteri preferito.
Una volta aggiunto il codice e salvato il file, devi caricarlo nella directory del tuo tema nel tuo account di hosting WordPress.
Puoi farlo utilizzando un client FTP o lo strumento di gestione file nel pannello di controllo del tuo hosting WordPress. Se non hai mai usato FTP prima, consulta la nostra guida su come usare FTP per caricare file su WordPress.
Dopo aver aggiunto il codice, i titoli dei tuoi post verranno troncati al conteggio dei caratteri che hai impostato.
Speriamo che questo articolo ti abbia aiutato a imparare come troncare i titoli dei post di WordPress con PHP. Potresti anche voler consultare la nostra guida su come scrivere un ottimo post del blog e le nostre scelte esperte dei migliori strumenti e plugin di content marketing per WordPress.
Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.


kzain
Un'ottima soluzione per ripulire quei titoli lunghi!
Soprattutto con titoli accattivanti, a volte possono sfuggire un po' di mano. Questa funzione personalizzata sembra semplice da implementare, anche se potrei aver bisogno di un amico per aiutarmi con la parte PHP.
Achintha
C'è una funzione di WordPress per limitare le parole. Meglio usarla.
http://codex.wordpress.org/Function_Reference/wp_trim_words
dustinporchia
Questo è oro!….Grazie wpbeginner!
adm_mnz
Se usi mb_substr c'è un parametro per la codifica.
http://php.net/manual/en/function.mb-substr.php
Junaid
Fantastico! Stavo giusto cercando per il progetto di un cliente
Marco
Qualcuno sa come il titolo del link di previous_post_link(); potrebbe essere troncato?
grazie
Sfoglia
Grazie, ha funzionato perfettamente! Non volevo finire per usare un plugin solo per fare questo ed ero felice che il tuo codice tagliasse correttamente i titoli.
Grazie ancora!
Joey Figaro
Ehi – grazie per aver scritto questo! Mi sono imbattuto in un altro esempio di come ottenere questo risultato e sembrava molto più semplice, quindi lo condividerò con te e vedremo cosa ne pensi.
functions.php:
function new_excerpt_length($length) { return 100; } add_filter(‘excerpt_length’, ‘new_excerpt_length’);
Staff editoriale
Questi sono due concetti completamente diversi…. Quello che raccomandi è per gli estratti dei post, mentre quello di cui stiamo parlando è per i titoli dei post.
Amministratore
Joey Figaro
Wow, that’s embarrassing.
Lena
Ciao! Questo non funziona se usi lingue diverse dall'inglese. Il mio titolo svedese sembra orribile perché il codice non traduce å ä e ö rispetto al codice predefinito. Hai suggerimenti su cosa devo fare? Questo è un buon trucco e voglio usarlo.
Cordialmente Lillan
Staff editoriale
Hmm… questo sembra un problema serio. Mi chiedo se puoi specificare la lingua tramite PHP, in modo che conti i caratteri in quella invece che in inglese.
Amministratore
Alex
You might wanna try to specify a different charset, check Latin1 or utf8 i think they contain those chars as well.. I had some similar issues recently since my first language is german
Staff editoriale
Thank you for helping out Alex
Ben Kulbertis
Grazie per il Trackback!
Staff editoriale
We appreciate your work for the community. Thanks for the nice snippet
Amministratore
Navjot Singh
Un suggerimento, questo tipo di codice dovrebbe essere incluso in functions.php e non in index.php. Puoi usare i tag condizionali per limitare il codice a qualsiasi pagina desideri, sia essa la homepage o qualsiasi altra pagina in cui lo desideri.
Staff editoriale
Questo è solo per aree specifiche… Ma sì, può essere personalizzato e inserito in functions.php
Amministratore
Thomas Scholz
Non usare strlen(). Usa mb_strlen() o strlen(utf8_decode($str)) altrimenti rischi di troncare la stringa all'interno di un carattere multibyte. Lo stesso vale per mb_substr().
Oh, and an ellipsis is one character: …
snipsley
Grazie!! mb_strlen() e mb_substr hanno risolto il mio problema di codifica. Lo cercavo da ore!
Lena Backstedt
Grandi ringraziamenti!
mb_strlen() sembra funzionare anche per la lingua svedese (per quanto posso vedere finora)