WordPress trick: impostare un numero massimo di caratteri visualizzabili nel titolo
Scritto da Erriko in Wordpress il 30 giugno 2009
Spesso capita per svariate esigenze (specialmente di ottimizzazione del tema di WordPress) di dover limitare il numero massimo di caratteri visualizzabili nei titoli degli articoli.
Personalmente mi è capitato, infatti, di realizzare un tema pieno di loops (parleremo anche di questo argomento in futuro), i quali venivano irrimediabilmente sfalsati a causa di alcu titoli troppo lunghi.
La soluzione, come spesso capita, sta nel modificare il codice php e, devo dire, risulta più semplice di quanto si pensi.
In questo caso la soluzione si limita infatti in questo caso a quattro righe di codice facilmente comprensibile, e precisamente questo:
<?php if(strlen($post->post_title) > 35) {
echo substr(the_title($before = '', $after = '', FALSE), 0, 35) . '[...]';
}
else {the_title();}?>
Per personalizzare questo codice basta cambiare i due valori numerici decidendo così quanti caratteri visualizzare (in questo caso 35).
Il testo incluso tra gli apici prima del punto e virgola che chiude il comando “echo” corrispondono al testo visualizzato nel titolo subito dopo averlo troncato.
Per essere più chiari un titolo come WordPress trick: impostare un numero massimo di caratteri visualizzabili nel titolo verrebbe riportato come WordPress trick: impostare un numer[...].
Semplice, no?






Ciao scusa la mia ignoranza ma sono agli inizi con wordpress. La modifica che hai suggerito va apportata al file index.php del tema dove c’è il link del titolo?
io ho:
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a>
diventa:
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php if(strlen($post->post_title) > 35) {echo substr(the_title($before = ”, $after = ”, FALSE), 0, 35) . ‘[...]‘; } else {the_title();} ?></a>
giusto?
Grazie mille
Si dovrebbe essere corretto….
Ciao Erriko, complimenti!.
Ma accidenti a te ed a quanto fai penare me e la Silvia che ha già risolto, beata lei!. Scherzo!.
Però, meno male che c’è stata prima lei a far chiarezza, altrimenti, fosse stato per te… Tanto buon codice scrivi, per quanto inversamente proporzionale poco chiarisci. Che ci voleva il mago a dirmi ora dove diavolo dovevo apportare le tue modifiche? Pe r la prossima volta ti consiglio di venirmi in sogno, così ne approfitto e ti faccio anche qualche altra domandina… Vieni qua, và… che avrei dei dubbi da risolvere sull…
Ciaooooo e continua così… E scrivi di più, almeno le spiegazioni… Passo passo!.
E non terminare il tuo ’help’ con un “Si dovrebbe essere corretto….”
Meglio di te chi deve saperlo… Io?.
Ciao Erriko.
Scusa un po’… Ti andrebbe di darmi 2 dritte?.
1) Come fare a far scegliere un avatar in fase di regisrazione o successivamente e dove prendere gli avatar all’infinito (sai com’è?… uno per ciscuno!)?.
2) Come fare perchè l’avatar scelto si rappresenti automaticamente in ogni post o commento dell’user loggato (nel riquadro alto a sinistra, ma con la scritta che lo contorna a destra ed in basso)?.
E’ come l’avatar automatico proposto di default da WordPress… Solo che quelli fanno un po’ … e non si possono scegliere.
Un’altra cosuccia da poco conto: Ma quanto ti ci vuole a rispondere?.
Se mi fornisci l’indirizzo ti mando il postino di Maria per informarti che sul tuo blog … C’è posta per te!.
Ciao… E fa’ il bravo e rispondi, eh!.
Aaaaaaaaaaaa…desso ho capito!.
Che furbacchione sei … Erriko Erriko!… Bisogna essere femminuccia perchè tu risponda in poco più di un’oruccia…. Vedi la Silvia che cu… che fortuna che ha avuto?.
Scherzi a parte… oh, Erriko… Datti una mossa che ho il Blog fermo con le novità!.
Frank Frank… Ma ti pare che di Domenica sto h24 a controllare il sito?
A parte questo vorrei precisarti che il “Si dovrebbe essere corretto…” è stata una risposta data perchè ho intepretato il codice php presentatomi soltanto leggendolo, per cui non avendolo testato non potevo di certo dire “si funziona sicuramente, hai la mia parola”, non credi?
Il discorso che rispondo alle donne piuttosto che agli uomini.. sorvoliamo.
Riguardo le tue dritte: richiederebbero due guide a sè, per cui non è molto agevole parlarne tramite commenti. Fornisco comunque supporto professionale dietro richiesta se mi contatti tramite email utilizzando il modulo contatti alla pagina Contatto.
Vedi, io qui fornisco degli spunti e cerco di renderli più comprensibili possibile. Ovviamente quando scrivo credo di rivolgermi ad un pubblico consapevole (altrimenti perchè cercherebbe questi argomenti?), per cui è normale che non escono sempre guide “pappa pronta”, specialmente quando si parla di programmazione, che di per se è un campo pieno di variabili (capita la battuta?
).
Hai fatto bene a scrivere che ‘forse’ perchè quel codice è sbagliato!.
Non sei solo ad essere qui presente di domenicaa quasi l’una di notte, quindi, devo correggermi di lunedi!.
Altro che sorvolare sulla questione donna… Uhmmmm!.
Si si capisco la batuta, un po’ meno le variabili, quindi, per favore, le prossime volte rendile “orecchiabili”.
Capito la battuta?.
Ciao Buona notte!.
Salve, sapreste indicarmi cosa modificare per settare il minimo dei caratteri utilizzabili in un articolo (vorrei settarlo in modo che non si scrivano articoli con meno di 150 caratteri)
Questo è un problema diametralmente opposto a quello trattato qui. Ed è ben più complicato. Ci vorrebbe un controllo sulla pagina php dell’editor di wordpress mi sa.
Onestamente così su due piedi non ti saprei dire, bisognerebbe fare un discorso più approfondito…
Per non uscire troppo fuori tema ti faccio una richiesta sperando sia più semplice! Ho notato che quando si scrive un articolo puoi mettere nel titolo anche 1000 caratteri per assurdo…
ma anche mettendone molto molto meno, per una questione seo, non lo trovo molto indicato.
Come potrei gestire questo problema? Ossia impostare che mentre si scrive un articolo si ha un massimo di 50 caratteri utilizzabili..al 50esimo carattere non ti fa mettere più nulla. In pratica un pò quello che succede nei forum
Sono d’accordo con te sul discorso della lunghezza del titolo. Purtroppo da questo punto di vista ci si mette anche la lingua italiana a creare disagi (un titolo in inglese, pur avendo lo stesso contenuto spesso è più corto ad esempio).
Per quanto riguarda il lato amministratore, che io sappia, non esiste nulla.
Potresti utilizzare il plugin “Pre-publish reminders” riportato qui http://www.erriko.it/programmazione/wordpress-programmazione/12-plugins-di-wordpress-per-migliorare-il-pannello-di-amministrazione/ per ricordare ai vari autori del sito alcuni limiti che desideri siano rispettati.
Grazie della dritta..
non sarebbe una soluzione definitiva ma almeno aiuta molto
Ahhh dimenticavo di scrivere che questo codice non funziona!
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php if(strlen($post->post_title) > 35) {echo substr(the_title($before = ”, $after = ”, FALSE), 0, 35) . ‘[...]‘; } else {the_title();} ?></a>
Funziona di certo perchè è lo stesso che uso qui in questo momento
Non è che usi wp 3.0?
Caro Erriko,
per limitare il numero di caratteri visualizzati nei Feeds RSS (con WP 3.0) si può intervenire sul file:
- “default-widgets.php” nella dir: “wp-includes”.
L’intervento è intorno alla riga n. 858.
Nota: è meglio indicare i files sui cui intervenire,
come pure la versione di WP a cui si riferisce il trick.
<code>
if ($link == ”)
{
echo “<li>”.$title.”{$date}{$summary}{$author}</li>”;
} else {
if (strlen($title) >= 30)
{
//echo “<b>”.strlen($title).”<br>”;
$short = substr($title, 0, 30) . ‘[...]‘;
echo “<li><a class=’rsswidget’ target=’_blank’ href=’”.$link.”‘ title=’”.$desc.”‘>”.$short.”</a>{$date}{$summary}{$author}</li>”;
} else {
echo “<li><a class=’rsswidget’ target=’_blank’ href=’”.$link.”‘ title=’”.$desc.”‘>”.$title.”</a>{$date}{$summary}{$author}</li>”;
}
}
</code>
Carissimo PLBon,
la data dell’articolo risale a Giugno 2009, per cui in linea di massima risulta evidente che non fosse stato scritto per wp 3. Inoltre al momento della stesura dell’articolo era compatibile con tutte le versioni di WordPress.
Ti dirò di più: lo è ancora. Il codice in questione fa uso di funzioni basilari di php (vedi la funzione strlen e quella substr) e non di wordpress, per cui anche cambiando versione del cms non varia. Qui è in uso, funziona, e sono su wp 3.0. Si tratta semplicemente di una funzione che taglia una stringa, niente di alieno. Anzicchè mettere manualmente il valore qui facciamo in modo che lo prenda come variabile del titolo del post.
Per altro avrai notato le analogie del codice da te proposte con quello suggerito nell’articolo…
Il codice che hai proposto tu è sicuramente un prezioso suggerimento ed uno spunto utile. Ma personalmente non gradisco le modifiche sui files core di wordpress, semplicemente perchè questi verranno sovrascritti al prossimo update. Se mai dovessi fare una modifica del genere agirei tramite il file functions.php del tema.
I files da modificare non li ho citati, perchè non esiste un file specifico da modificare. Se hai avuto modo di lavorare già con i loops di wordpress saprai che puoi inserirli dovunque tu voglia. Per cui basta sapere che questo codica va messo dove vuoi mostrare il titolo del post… Potrei anche mettere solo questo codice in un file chiamato titolo.php e poi utilizzarlo nei files del tema mettendo include(‘titolo.php’); no?
Scusami per tutte queste precisazioni, ma sai, è impegnativo mantenere questo blog evitando accuratamente di sparare bestialità come certi colleghi (del tipo: “aprite il pront dei comandi”, letto personalmente qualche minuto fa con grande tristezza su un sedicente portale tecnologico). Ti assicuro che quello che scrivo è corretto e testato personalmente più volte.
Certe cose le tralascio (tipo: utilizza filezilla e naviga nella cartella del tema di wp) perchè do per scontato che chi cerca una informazione del genere è un target che decide di mettere mano al codice e almeno ha i concetti di base, in caso contrario spero di fornire spunto ad un approfondimento che certamente farà piacere (io adoro chi mi fornisce spunti!)
Caro Erriko,
grazie per il cortese riscontro e per le delucidazioni.
Tieni conto che la 3.0 rappresenta lo stato dell’arte corrente, per cui, credo, non sia male condividere qualche spunto.
Se poi si tratta di intervenire sul codice WP, non vedo il problema: l’importante è avere contezza di ciò che stiamo facendo, fornendo una spiegazione adeguata.
Cordialmente.
PLBon
Sono d’accordo con te.