WordPress 5.2: problema con la funzione the_excerpt
WordPress è un ottimo prodotto. Lo sappiamo. È facile da usare, potente e molto flessibile. Infatti, è andata crescendo la velocità con la quale si sviluppa l’integrazione. La dipendenza dal CMS è aumentata esponenzialmente all’interno della comunità web ma anche per i comuni mortali. 🙂
A volte, però, non è tutto rose e fiori. Ci sono gli aggiornamenti da gestire, bug potenziali, imcompatibilità fra un plugin e un’altra estensione, ecc.
Infatti, nella versione 5.2 di WordPress, abbiamo riscontrato un problema piuttosto importante riguardante le funzioni the_excerpt() e get_the_excerpt().
Non preoccupatevi, si tratta, per ora, di un bug trovato in un unico sito.
Dopo aver testato quasi ogni possibilità, ci siamo detti che poteva essere un problema di Gutenberg, il nuovo editor del CMS, oppure del server. O forse dell’assemblaggio “plugin + tema”.
Insomma, per non perdere altro tempo ci siamo messi a creare una funzione PHP efficace per rimpiazzare il the_excerpt() di WordPress.
Ovviamente si trova nel file functions.php del nostro tema child:
function d4fString( $content, $limit, $sep = '...' ) { if( strlen($content) >= $limit ) { $content = substr( $content, 0, $limit ); $content = substr( $content, 0, strrpos($content, ' ') ); $content .= $sep; } return strip_tags(strip_shortcodes($content)); }
Bene, traduciamo queste poche linee di codice.
Come in PHP “puro”, abbiamo dichiarato una funzione, d4fString, avente tre parametri: $content (il contenuto), $limit (i caratteri che si vogliono inserire) e $sep (la parte troncata del testo).
La funzione strlen restituisce la lunghezza della stringa $content. Invece la funzione substr restituisce una parte di una stringa. La sua sintassi è la seguente:
Alla fine delle operazioni, concateniamo $content alla fine del testo, che in questo caso si conclude con i tre puntini di sospensione.
Infine, aggiungiamo strip_tags per togliere l’html dal contenuto e strip_shortcodes per rimuovere eventuali shortcodes di WordPress.
Una volta finito, bisogna soltanto chiamare la funzione nella parte front del sito.
<?php echo d4fString($excerpt, 150); ?>
Non aggiungiamo il terzo parametro perché il valore di default (i tre puntini di sospensione), ci soddisfa.
Ovviamente dovrete recupereare il contenuto ($excerpt) utilizzando MySQL, quindi ci sarà il passaggio supplementare da fare.
E’ una funzione che potrete facilmente riutilizzare in qualsiasi sito fatto in php, bisogna soltanto togliere strip_shortcodes che è una funzione propria a WordPress.
Ricordatevi sempre che lo sviluppo è una forma d’arte.
I nostri corsi : https://www.develop4fun.it/premium-corsi-online-in-abbonamento
▼ SEGUICI SU ▼
» Facebook per il Web e corsi online: https://www.facebook.com/developforfun
» Facebook di D4F Games: https://www.facebook.com/d4fgames
» Instagram per il Web e corsi online: https://www.instagram.com/develop4fun
» Instagram di D4F Games: https://www.instagram.com/d4f_games
» Twitter per il Web e corsi online: https://twitter.com/Develop4fun
» Twitter di D4F Games: https://twitter.com/D4fGames
» VISITA IL NOSTRO SITO WEB: https://www.develop4fun.it/
» ISCRIVITI SUBITO AL NOSTRO CANALE: https://www.youtube.com/channel/UCZ4dhshzpVbbRPVuL9TNH4Q