✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come visualizzare il tempo di lettura stimato sui post del blog

16

Se gestisci un blog WordPress, probabilmente stai cercando di trovare diversi plugin e snippet per tenere occupati i tuoi visitatori e incoraggiarli a leggere i tuoi post senza fare clic.

Al giorno d’oggi, i visitatori spesso vogliono ottenere quante più informazioni possibili semplicemente scorrendo una pagina. La visualizzazione del tempo di lettura stimato per un post è molto utile per questo. In questo modo, un visitatore saprà quanto tempo ha bisogno per ottenere informazioni leggendo un argomento di interesse. A sua volta, questo incoraggerà anche gli autori di blog a scrivere post che saranno più interessanti e richiederanno meno tempo. Inoltre, come proprietario di un blog, sarai in grado di determinare l’approccio migliore se controlli le metriche e confronti il ​​tempo che i visitatori trascorrono su post diversi.

Alcuni plugin coprono sicuramente questa funzionalità, ma la funzione di WordPress che gestisce questa è molto semplice da usare. Pertanto, non è necessario intasare il tuo blog con un altro plug-in solo per questo scopo.

Per comprendere facilmente questo metodo, lo spiegheremo integrando le modifiche nel tema gratuito WordPress Twenty Sixteen.

Iniziamo con la funzione

if( !function_exists('content_estimated_reading_time')) {
/**
Function that estimates reading time for a given $content.
@param string $content Content to calculate read time for.
@paramint $wpm Estimated words per minute of reader.
@returns int $time Esimated reading time.
*/
function content_estimated_reading_time( $content = '', $wpm = 200) {
$clean_content= strip_shortcodes( $content );
$clean_content= strip_tags( $clean_content);
$word_count= str_word_count( $clean_content);
$time = ceil( $word_count/ $wpm );
$output = '<span class="read-time-holder">';
$output .= '<span class="read-time">'. $time .'</span>' .' ';
$output .= '<span class="read-text">'. esc_attr__('min read', 'twentysixteen' ). '</span>';
$output .='</span>';
return $output;
}
}

La funzione accetta due parametri: contenuto ($contenuto) e parole stimate per minuto di lettore ($wpm). Il secondo parametro è impostato su 200 per un lettore medio, ma è possibile impostarlo su un altro valore. Puoi raccogliere alcune informazioni utili su questo su Internet.

All’interno della funzione, dobbiamo rimuovere il contenuto da tutto il resto tranne le parole stesse. Quindi, per prima cosa, utilizzeremo due funzioni per rimuovere shortcode e tag (strip_shortcodes e strip_tags ).

Successivamente, dobbiamo contare le parole nel contenuto pulito. Pertanto, memorizzeremo il contenuto in una variabile $word_count. La funzione per contare le parole usata qui è str_word_count.

Per calcolare il tempo medio di lettura, dobbiamo solo dividere il conteggio delle parole per le parole lette al minuto, mentre la funzione ceil utilizzata qui serve per arrotondare il risultato.

La seconda parte della funzione serve solo per l’output dell’html con l’ora e il testo che seguono.

Per integrare la funzione nel tuo tema, aggiungila alla fine del file functions.php per il tema che stai attualmente utilizzando.

Come puoi vedere, l’intera logica alla base del tempo medio di lettura è molto semplice. Tuttavia, la funzione non farà nulla da sola. Ecco perché per visualizzarlo nell’elenco del tuo blog o nei singoli post, dobbiamo prima chiamarlo.

Chiamare la funzione

Ci sono diversi modi in cui puoi mettere in funzione la funzione. Ne tratteremo tre di seguito.

Comunemente, il modo più semplice per la stragrande maggioranza degli utenti è chiamare la funzione direttamente dall’interno del file dove ne hanno bisogno. Diciamo che, ad esempio, devi chiamare la funzione all’interno del file single.php, che è un modello per visualizzare i singoli post. Ciò significa semplicemente che è necessario aprire questo file e quindi eseguire l’eco della funzione lì con il contenuto del post come parametro, in questo modo:

<?php echo content_estimated_reading_time( get_the_content() ); ?>

Questo è ovviamente se hai un loop e tutta la struttura all’interno del file single.php, ma molto probabilmente non lo farai. Un esempio della struttura può assomigliare a questo:

2 Usa il filtro

I temi moderni e meglio codificati separano questi moduli in file diversi. Pertanto, un metodo migliore consiste nell’utilizzare il filtro e restituire il contenuto con l’aggiunta della funzione di filtro. L’argomento su come aggiungere un filtro è già stato ampiamente trattato su Internet.

3 Modificare la funzione esistente per un maggiore controllo

Questo è probabilmente l’approccio migliore perché puoi avere un maggiore controllo per posizionare l’output. Nel tema Twenty Sixteen, c’è una funzione responsabile della stampa di categorie e tag per ogni post dell’elenco e singoli post. È una funzione di ventisei_entry_taxonomies. Tutto ciò che ti resta da fare è semplicemente copiarlo e incollarlo all’interno di functions.php e modificarne l’ultima parte con la nostra funzione per la chiamata del tempo di lettura stimato.

Vorremmo menzionare brevemente che poiché abbiamo mantenuto lo stesso nome per la funzione, sovrascriverà quella originale. Ora, la funzione con la nostra modifica verrà eseguita in tutti i punti all’interno del tema.

Le funzioni modificate dovrebbero assomigliare a questa:

/**
* Function override of default function in parent theme
* Adding reading time function at the end
*/
function twentysixteen_entry_taxonomies() {
$categories_list= get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($categories_list&&twentysixteen_categorized_blog()) {
printf( '<span class="cat-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Categories', 'Used before category names.', 'twentysixteen' ),
$categories_list
);
}
$tags_list= get_the_tag_list( '', _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($tags_list&&! is_wp_error( $tags_list)) {
printf( '<span class="tags-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Tags', 'Used before tag names.', 'twentysixteen' ),
$tags_list
);
}
/*our code modification to this function*/
print content_estimated_reading_time(get_the_content());
}

In questo modo, produrremo il tempo di lettura nella parte con tag e categorie a cui appartiene.

Come visualizzare il tempo di lettura stimato sui post del blog

Il codice all’interno del file functions.php del tema Twenty Sixteen dovrebbe assomigliare a questo:

Come visualizzare il tempo di lettura stimato sui post del blog

if (!function_exists('content_estimated_reading_time')) {
/**
Function that estimates reading time for a given $content.
@param string $content Content to calculate read time for.
@param int $wpm Estimated words per minute of reader.
@returns int $time Esimated reading time.
*/
function content_estimated_reading_time( $content = '', $wpm = 200) {
$clean_content = strip_shortcodes( $content );
$clean_content = strip_tags( $clean_content );
$word_count = str_word_count( $clean_content );
$time = ceil( $word_count / $wpm );
$output = '<span class="read-time-holder">';
$output .= '<span class="read-time">'. $time. '</span>'. ' ';
$output .= '<span class="read-text">'. esc_attr__( 'min read', 'twentysixteen' ). '</span>';
$output .= '</span>';
return $output;
}
}
/**
* Function override of default function in parent theme
* Adding reading time function at the end
*/
function twentysixteen_entry_taxonomies() {
$categories_list = get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($categories_list && twentysixteen_categorized_blog()) {
printf( '<span class="cat-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Categories', 'Used before category names.', 'twentysixteen' ),
$categories_list
);
}
$tags_list = get_the_tag_list( '', _x( ', ', 'Used between list items, there is a space after the comma.', 'twentysixteen') );
if ($tags_list &&! is_wp_error( $tags_list)) {
printf( '<span class="tags-links"><span class="screen-reader-text">%1$s </span>%2$s</span>',
_x( 'Tags', 'Used before tag names.', 'twentysixteen' ),
$tags_list
);
}
/*our code modification to this function*/
print content_estimated_reading_time(get_the_content());
}

Preferibilmente, questa modifica dovrebbe essere eseguita nel tema figlio.

Quando si aggiunge la funzione del tempo di lettura stimato in temi diversi, tenere presente che i modi migliori per integrare la chiamata di funzione possono variare. Prova a prenderti del tempo sfogliando i passaggi che abbiamo trattato per trovare l’approccio migliore.

Ci auguriamo che questo articolo ti sia stato utile. Se ti è piaciuto, non esitare a dare un’occhiata anche ad alcuni di questi articoli!

Fonte di registrazione: wpklik.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More