Volete imparare a troncare i titoli degli articoli con PHP?
La troncatura, o accorciamento, consente di controllare la lunghezza dei titoli degli articoli del blog sul sito web. A seconda del tema di WordPress, potreste voler visualizzare titoli più corti di quelli supportati dal tema.
In questo articolo vi mostreremo come troncare i titoli degli articoli in WordPress.
Perché troncare i titoli degli articoli in WordPress con PHP?
Il troncamento dei titoli degli articoli in WordPress con PHP vi dà un maggiore controllo sulla lunghezza dei titoli degli articoli e su come vengono visualizzati sul vostro sito web.
Ad esempio, potreste voler offuscare i titoli degli articoli lunghi sulla vostra homepage, in modo che non disturbino il design del vostro blog WordPress.
Nota: alcuni utenti desiderano semplicemente utilizzare titoli di articoli più brevi per ottimizzare gli articoli del blog per la SEO. In questo caso, non è necessario troncare i titoli degli articoli. È sufficiente utilizzare un plugin WordPress SEO per accorciare la tagga del titolo.
Un plugin SEO vi permetterà di creare titoli SEO personalizzati per le pagine di ricerca, pur mantenendo sul vostro sito titoli di articoli più lunghi per i visitatori.
Per maggiori dettagli, consultate la nostra guida definitiva su come impostare correttamente All in One SEO.
Detto questo, vi mostriamo come troncare i titoli degli articoli di WordPress sul vostro sito web utilizzando due metodi diversi:
Metodo 1: troncare i titoli degli articoli di WordPress con una funzione di WordPress
Il modo più semplice per troncare i titoli degli articoli in WordPress è aggiungere del codice PHP ai file di WordPress. Se non l’avete mai fatto prima, selezionate la nostra guida su come copiare e incollare codice in WordPress.
Molti tutorial indicano di aggiungere il codice direttamente al file functions.php del tema. Tuttavia, eventuali errori potrebbero causare una serie di errori di WordPress o addirittura la rottura del sito.
Per questo motivo vi consigliamo di utilizzare il plugin gratuito WPCode, seguendo la nostra guida su come add-on il codice personalizzato in WordPress.
Per prima cosa, è necessario installare e attivare il plugin gratuito WPCode. Se avete bisogno di aiuto, consultate la nostra guida passo-passo su come installare un plugin di WordPress.
Dopo l’attivazione, selezionare Code Snippets ” + Add Snippet dalla barra laterale dell’amministrazione. Passare quindi il mouse sull’opzione “Aggiungi codice personalizzato (nuovo snippet)” e fare clic sul pulsante “Usa snippet” che appare.
Si aprirà una nuova pagina in cui si potrà digitare un titolo per lo snippet e aggiungere il codice.
È sufficiente copiare e incollare il seguente codice nel riquadro Anteprima codice di 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');
Questo codice verrà eseguito all’interno del loop dei post di WordPress e accorcerà i titoli degli articoli del blog a ’35’ caratteri. Per modificare la lunghezza del titolo, è sufficiente impostare la variabile $max
sulla lunghezza preferita.
Successivamente, è necessario scegliere “PHP Snippet” dal menu a discesa Tipo di codice.
Infine, è necessario attivare l’impostazione Attiva/disattiva e salvare lo snippet facendo clic sul pulsante “Salva snippet”.
Ora che lo snippet di codice è attivato, i titoli delle pubblicazioni del vostro blog saranno abbreviati ovunque appaiano sul vostro sito web WordPress.
Metodo 2: Troncare i titoli degli articoli di WordPress con PHP modificando i file del tema di WordPress
Un altro modo per troncare i titoli degli articoli di WordPress è aggiungere del codice direttamente nei file del tema di WordPress.
Questo metodo consente di controllare meglio dove i titoli vengono accorciati. Ad esempio, potreste voler tagliare i titoli solo sulla homepage, ma visualizzare il titolo completo sull’articolo del blog.
Per farlo, è necessario aggiungere il codice PHP direttamente ai file del tema di WordPress in cui si desidera troncare i titoli degli articoli del blog.
Ad esempio, è possibile aggiungere lo snippet di codice qui sotto al file index.php
per sostituire il tag esistente the_title
all’interno del loop degli articoli di WordPress e cambiare la lunghezza del titolo in tutto il 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 dell’articolo a 25 caratteri. Se la lunghezza del titolo è superiore a 25 caratteri, il titolo sarà off dopo 25 caratteri e aggiungerà un’ellissi ‘…’ alla fine.
Per modificare la lunghezza dei caratteri per il vostro sito web, basta cambiare la variabile $thelength
con il numero di caratteri che preferite.
Una volta aggiunto il codice e salvato il file, è necessario effettuare l’uploader nella directory dei temi del proprio account di hosting WordPress.
Potete farlo utilizzando un client FTP o lo strumento di gestione dei file nel pannello di controllo del vostro hosting WordPress. Se non avete mai usato l’FTP, consultate la nostra guida su come usare l’FTP per caricare i file su WordPress.
Dopo l’aggiunta del codice, i titoli degli articoli saranno troncati in base al numero di caratteri impostato.
Suggerimento: se avete usato il metodo 2, perderete queste modifiche quando aggiornerete il tema a una nuova versione. Per evitare questo problema, consultate la nostra guida su come aggiornare il tema di WordPress senza perdere i personalizzazioni.
Speriamo che questo articolo vi abbia aiutato a capire come troncare i titoli degli articoli di WordPress con PHP. Potreste anche voler consultare la nostra guida su come scrivere un ottimo articolo per blog e la nostra scelta dei migliori plugin per lo schema markup per WordPress.
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Achintha
Hey There is a wordpress function for limit words. Better to use that.
http://codex.wordpress.org/Function_Reference/wp_trim_words
dustinporchia
This is golden!….Thanks wpbeginner!
adm_mnz
If you use mb_substr there is a parameter for encoding.
http://php.net/manual/en/function.mb-substr.php
Junaid
Sweet! was just looking for a clients project
Marco
Does anybody know how the link title of previous_post_link(); could be truncated?
thanks
Brow
Thanks this worked perfectly! I didn’t want to end up using a plugin just to do this and was happy your code cut down the titles properly.
Thanks again!
Joey Figaro
Hey there – thanks for writing this up! I happened to stumble upon another example of how to achieve this and it seemed a lot more simple, so I will share it with you and see what you think.
functions.php:
function new_excerpt_length($length) {
return 100;
}
add_filter(‘excerpt_length’, ‘new_excerpt_length’);
Editorial Staff
These are two entirely different concepts…. The one you recommend is for post excerpts whereas the one we are talking about is for Post Titles.
Admin
Joey Figaro
Wow, that’s embarrassing.
Lena
Hi!
This doesn’t work if you use other languages than english. My swedish titel looks awful because the code doesn’t translate å ä and ö comparing to the default code. Any suggestions of what I have to do? This is a good trick and i want to use it.
Kindly Lillan
Editorial Staff
Hmm… that does sound like a serious issue. Wondering if you can specify the language via PHP, so it counts characters in that instead of english.
Admin
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
Editorial Staff
Thank you for helping out Alex
Ben Kulbertis
Thanks for the Trackback!
Editorial Staff
We appreciate your work for the community. Thanks for the nice snippet
Admin
Navjot Singh
One Suggestion, this type of code should be included in functions.php and not index.php. You can use conditional tags to restrict the code to any page you want whether its the homepage or any other page where you want.
Editorial Staff
This is just for specific areas… But yes, it can be customized and placed in functions.php
Admin
Thomas Scholz
Don’t use strlen(). Use mb_strlen() or strlen(utf8_decode($str)) or you risk to truncate the string inside of a multi-byte character. The same applies to mb_substr().
Oh, and an ellipsis is one character: …
snipsley
Thanks!! mb_strlen() a mb_substr solved my encoding problem. I’ve been looking for this for hours!
Lena Backstedt
BIG tnx!
mb_strlen() also seems to work for the swedish language (so far I can see)