Titoli più corti in WordPress: i principali due modi per realizzarli

Titoli più corti in WordPress: i principali due modi per realizzarli

La necessità di accorciare i titoli in WordPress deriva, il più delle volte, da un’esigenza di carattere pratico: un titolo troppo lungo è infatti a volte incompatibile con le proporzioni o il layout del tema che stiamo usando, per cui ne risulterebbe penalizzato, poco gradevole all’occhio e poco comprensibile per l’utente. Accorciare i titoli in WordPress è un tipo di operazione che possiamo effettuare in vari modi, e vedremo nella pratica come fare attraverso esempi pratici.

La prima cosa che faremo è quella di creare una funzione per accorciare il titolo, che potremo sia richiamare come hook / action sia utilizzare direttamente all’interno delle nostre personalizzazioni.

Per poter funzionare correttamente, la funzione in questione andrà inserita, di norma, in uno dei seguenti tre luoghi:

  1. in un plugin personalizzato creato apposta, che ad esempio potrebbe contenere tutte queste funzioni extra che vogliamo prevedere;
  2. in un mu-plugin, con un principio analogo;
  3. nel file functions.php, solo che in questo caso l’implementazione rimarrà legata al theme (se cambiamo theme, non ci ritroveremo più il codice della funzione).

Prima tecnica: accorcia il titolo per numero di caratteri

Ecco l’intestazione:

function shorted_trovalost( $t, $l=30 ){ ... }

La funzione completa, che prende come argomento $t (che è la variabile che contiene il titolo) e $l che è la lunghezza massima, in questa sede è la prima che andremo a considerare, taglia il titolo sulla base del numero di caratteri massimi ($l, nell’esempio, per lasciare il tutto parametrico con 30 come valore di default).

Ed eccovi l’esempio:

function shorted_trovalost( $t, $l ){
if ( strlen( $t ) > 30 ) { //Character length
$title_short = substr( $t, 0, 30); // Character length
preg_match('/^(.*)\s/s', $title_short, $matches);
if ($matches[1])
$title_short = $matches[1];
$title_short = $title_short.' ...';
} else {
$title_short = $t;
}
return $title_short;
}

Possiamo richiamare una funzione così in questo modo:

$titolo_corto = shorted_rovalost( get_the_title(), 15 );

che in pratica assegna alla variabile $titolo_corto il valore del title corrente, accorciato di 15 caratteri; attenzione che in questo contesto sto facendo l’ipotesi che ci troviamo in un punto del file single.php e comunque all’interno del loop. Per fare in modo di ricavare il title corrente fuori dal loop, in caso, bisogna sfruttare una variabile globale, ad esempio:

global $post; 
$post_id =$post->ID; 
$titolo = get_the_title($post_id); 
$titolo_corto = shorted_rovalost( $titolo, 15 );

Seconda tecnica: accorcia il titolo per numero di parole

Una seconda tecnica sfruttabile per accorciare i titoli di WordPress è quella di accorciare per numero di parole, che secondo alcuni è un modo più safe per eseguire l’operazione  e non rendere incomprensibile il testo in certe situazioni.

Ecco come fare:

function shorted_by_words_trovalost($t, $l, $after = '...') {
$mytitle = explode(' ', $t, $l);
if ( count($mytitle)>=$l ) {
array_pop($mytitle);
$mytitle = implode(" ",$mytitle). $after;
} else {
$mytitle = implode(" ",$mytitle);
}
return $mytitle;
}

Possiamo richiamare una funzione così in questo modo:

$titolo_corto = shorted_by_words_trovalost( get_the_title(), 15 );

In questo secondo caso ci prendiamo il title, andiamo a scomporlo nella funzione in “pezzi” (cioè parole, cioè stringhe separate da spazi mediante la funzione explode() ) e ci andiamo a creare un array delle prime $l parole. Questo array sarà ricomposto come stringa con la funzione implode e restituita dalla funzione. Le considerazioni precedenti, ovviamente, valgono qui in eguale misura.Photo by tacker


Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Ti potrebbero interessare (Guide WordPress):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.