Pourquoi afficher le temps de lecture et le nombre de mots ? Ces indications ne risquent-elles pas de faire fuir un lecteur pressé ?
Cet article prend 3 minutes à lire et comporte 729 mots.
Vous avez certainement remarqué, en dessous du titre de chaque article, que le temps de lecture et le nombre de mots sont affichés.
Pourquoi avoir rajouté ces indications ? Il semble, d’après plusieurs blogueurs, que l’ajout de ces indications réduisent le taux de rebond, parfois de manière significative.
L’internaute est un homme pressé – paraît-il. Sauf quand il trouve une information dont il a besoin.
Les études menées par les psychologues Claude Messner et Michaela Wänke montrent que plus le lecteur a d’indications annexes (pertinentes), plus l’implication est importante.
Dans le cas présent, il sait combien de temps il va passer à la lecture de votre article, et si le nombre de mots est élevé, c’est (subjectivement) un indice de qualité.
Ces données n’ont pas d’utilité pour un produit par exemple, l’intérêt n’est pas dans le nombre de mots sur la page, ni dans le temps de lecture, mais dans le taux de conversion !
Il ne va peut-être pas tout lire, mais au moins, il aura eu un aperçu du contenu de l’article.
Vous trouverez des extensions pour le temps de lecture, mais en fait, un simple bout de code suffit, et permet plus de souplesse.
Voici comment procéder…
Enregistrer temps de lecture et nombre de mots
Placez le bout de code suivant dans votre fichier functions.php, ou mieux, créez un nouveau snippet dans Code Snippets :
function pc_reading_time($post_id, $post, $update) { if( !$update || wp_is_post_revision($post_id) || $post->post_type != 'post' || ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) ) { return; } $theContent = str_replace('[', '<', $post->post_content); $theContent = str_replace(']', '>', $theContent); $word_count = str_word_count(strip_tags($theContent)); $minutes = ceil( $word_count / 250 ); // ajout du nombre de mots update_post_meta( $post_id, 'words_count', $word_count ); // ajout du temps de lecture en minutes update_post_meta( $post_id, 'time_to_read', $minutes ); } add_action('save_post', 'pc_reading_time', 10, 3);
Ce bout de code est exécuté lors de l’enregistrement d’un article – si vous avez plusieurs articles déjà en ligne, vous pouvez tous les sélectionner (par page), choisir Modifier dans les Actions groupées et Enregistrer, même sans effectuer la moindre modification.
C’est la méthode que j’ai choisi pour ce site et les 10 articles précédemment publiés.
Mais si vous avez des centaines d’articles déjà publiés, vous pourrez dans un premier temps créer une boucle de type foreach par exemple, l’exécuter une fois, puis la supprimer, plutôt que de passer page après page pour enregistrer une vingtaine d’articles à la fois.
Pour ceux qui ne connaissent pas Code Snippets, direction l’article Centralisez vos bouts de code avec « Code Snippets » où vous trouverez toutes les explications quant à l’utilité et à l’utilisation de cette extension.
Vous avez les données stockées, il ne vous reste plus qu’à…
Afficher temps de lecture et nombre de mots
Pour afficher ces données, il suffit de récupérer l’option pour l’article en cours :
// temps de lecture echo get_post_meta($post->ID, 'time_to_read', true). ' mn'; // nombre de mots echo number_format ( get_post_meta($post->ID, 'words_count', true), 0, ',', ' ' ) . ' mots';
Vous insérerez ce bout de code dans vos fichiers de modèles (single.php par exemple), là où vous avez décidé d’afficher l’information.
Mais il est aussi possible d’afficher ces données en utilisant un shortcode, voici comment faire…
Afficher avec un shortcode
Si vous souhaitez afficher le temps de lecture ou le nombre de mot dans l’article, il suffit de créer un shortcode.
Voici le shortcode pour le temps de lecture :
function mysite_time2read_shortcode() { return get_post_meta(get_the_ID(), 'time_to_read', true); } add_shortcode('time2read', 'mysite_time2read_shortcode');
Et celui pour le nombre de mots :
function mysite_wordscount_shortcode() { return get_post_meta(get_the_ID(), 'words_count', true); } add_shortcode('wordscount', 'mysite_wordscount_shortcode');
Il ne vous restera plus qu’à insérer vos shortcodes dans l’article, comme suit (le résultat ligne suivante) :
Cet article prend [time2read /]
minutes à lire et comporte [wordscount /]
mots.
Cet article prend 3 minutes à lire et comporte 729 mots.
Et si vous ne souhaitez plus afficher le temps de lecture (ou le nombre de mots, ou les deux) sur votre blog…
Supprimez les données
Vous pourrez supprimer l’entrée correspondante en ajoutant temporairement ce bout de code dans Code Snippet ou – dans le pire des cas – dans le fichier functions.php
:
if ( get_option( 'words_count', null ) !== null ) delete_option( 'words_count' ); if ( get_option( 'time_to_read', null ) !== null ) delete_option( 'time_to_read' );
En fait, il suffit d’une seule exécution pour supprimer toute trace sur votre blog. Rafraîchir la page d’accueil devrait suffire. Vous pouvez ensuite supprimer ce bout de code.
Et maintenant
Il ne vous reste plus qu’à tester. Peut-être cette indication n’est pas utile pour votre blog, vous vous en rendrez vite compte en jetant un œil sur vos statistiques.
Merci beaucoup pour l’explication !
On crée une fois dans Code Snippets pour l’ensemble du blog.
Ensuite, on ajoute le shortcode dans chaque article où on veut qu’il apparaisse, ou on modifie le modèle d’article et on ajoute :
<div>Cet article prend <?php echo do_shortcode('[time2read /]'); ?>mn à lire et contient <?php echo do_shortcode('[wordscount /]'); ?> mots.</div>
Si j’ai bien compris comment faire il suffit d’écrire « Cet article prend [time2read /] minutes à lire et comporte [wordscount /] mots. » à chaque début d’articles une fois que l’on à créer un shortcode dans l’extension codes snippets