Creare una funzione per il tempo di lettura di un articolo di WordPress
Tempo di lettura: 3 minuti
Aggiungere il tempo di lettura di un articolo aumenta il coinvolgimento nella lettura dell’articolo: ecco come aggiungere questa informazione agli articoli di WordPress.
Una dovuta premessa: il calcolo del tempo di lettura è tecnicamente un calcolo del tempo medio di lettura stimato che si basa su alcuni dati.
Facendo qualche ricerca, tutto si basa sul tempo medio di lettura di un testo standard, che è stimabile in 265 parole al minuto. Qualcuno dice di più, qualcuno dice di meno… aggiungendo poi qualche secondo anche per le immagini.
Partiamo da questo dato allora: quante parole sono contenute nell’articolo: a meno di strani template o comportamenti del sistema sono le parole del titolo più quelle del contenuto dell’articolo.
$content = [];
$content[] = get_the_title();
$content[] = get_the_content();
$content = implode(' ', $content);
$words = str_word_count($content);
Per comodità di gestione inseriamo il titolo e il contenuto in un array (di nome $content
) e li incolliamo (con la funzione implode
) con degli spazi nel mezzo. Per contare poi le parole usiamo la funzione str_word_count
.
Per stimare poi i secondi necessari alla lettura il calcolo è:
- numero di parole / parole lette al minuto * 60 secondi
A questo conto possiamo poi aggiungere magari 12 secondi per la “lettura” dell’immagine in evidenza… ed ecco fatto: abbiamo il tempo di lettura stimato in secondi.
Per rendere il tutto più leggibile portiamo il tempo in una “forma più umana” ed in ciò WordPress ci viene incontro con la funzione human_readable_duration
(documentazione alla pagina ufficiale) che però necessita del tempo diviso in minuti e secondi e formattato come mm:ss
.
Facciamo quindi una divisone intera per tornare ad avere i minuti e il resto per avere i secondi.
$ii = intdiv($time, 60);
$ss = $time % 60;
$duration = $ii.':'.$ss;
$timetoread = human_readable_duration($duration)
Semplice vero?
La funzione ritornerà una informazione del tipo 2 minuti, 52 secondi.
Inserendo il tutto in una funzione globale, nel file functions.php
, possiamo quindi usare una semplice chiamata all’interno del loop come per qualsiasi altra informazione dell’articolo. Ecco di seguito il codice completo:
Fonti:
- How Estimated Reading Times Increase Engagement With Content da Marketing Land
- How to more accurately estimate read time for Medium articles in JavaScript da freeCodeCamp
- How to add ‘reading time’ to your articles di Coen Goedegebure
- How To Estimate Any Article’s Read Time di BetterProgramming
- How is Medium Article Read Time Calculated? di Blogging Guide
Credits: illustrazione di copertina Man read a message di Anastasiya Melnikova