Ajoutez le temps de lecture à vos articles

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 certai­ne­ment remar­qué, en dessous du titre de chaque article, que le temps de lecture et le nombre de mots sont affichés.

Pourquoi avoir rajouté ces indi­ca­tions ? Il semble, d’après plusieurs blogueurs, que l’ajout de ces indi­ca­tions 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 infor­ma­tion dont il a besoin.

Les études menées par les psycho­logues Claude Messner et Michaela Wänke montrent que plus le lecteur a d’in­di­ca­tions annexes (perti­nentes), plus l’im­pli­ca­tion est impor­tante.

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 (subjec­ti­ve­ment) un indice de qualité.

Ces données n’ont pas d’uti­lité pour un produit par exemple, l’in­té­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 trou­ve­rez des exten­sions 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 snip­pet  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’en­re­gis­tre­ment d’un article – si vous avez plusieurs articles déjà en ligne, vous pouvez tous les sélec­tion­ner (par page), choi­sir Modifier dans les Actions grou­pées et Enregistrer, même sans effec­tuer la moindre modification.

C’est la méthode que j’ai choisi pour ce site et les 10 articles précé­dem­ment publiés.

Mais si vous avez des centaines d’ar­ticles déjà publiés, vous pour­rez dans un premier temps créer une boucle de type foreach par exemple, l’exé­cu­ter une fois, puis la suppri­mer, plutôt que de passer page après page pour enre­gis­trer une ving­taine d’ar­ticles à la fois.

Pour ceux qui ne connaissent pas Code Snippets, direc­tion l’ar­ticle Centralisez vos bouts de code avec « Code Snippets » où vous trou­ve­rez toutes les expli­ca­tions quant à l’uti­lité et à l’uti­li­sa­tion 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 affi­cher ces données, il suffit de récu­pé­rer l’op­tion pour l’ar­ticle 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é­re­rez ce bout de code dans vos fichiers de modèles (single.php par exemple), là où vous avez décidé d’af­fi­cher l’information.

Mais il est aussi possible d’af­fi­cher ces données en utili­sant un short­code, voici comment faire…

Afficher avec un shortcode

Si vous souhai­tez affi­cher le temps de lecture ou le nombre de mot dans l’ar­ticle, il suffit de créer un shortcode.

Voici le short­code 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 short­codes dans l’ar­ticle, comme suit (le résul­tat 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 souhai­tez plus affi­cher le temps de lecture (ou le nombre de mots, ou les deux) sur votre blog…

Supprimez les données

Vous pour­rez suppri­mer l’en­trée corres­pon­dante en ajou­tant tempo­rai­re­ment 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écu­tion pour suppri­mer toute trace sur votre blog. Rafraîchir la page d’ac­cueil devrait suffire. Vous pouvez ensuite suppri­mer ce bout de code.

Et maintenant

Il ne vous reste plus qu’à tester. Peut-être cette indi­ca­tion n’est pas utile pour votre blog, vous vous en rendrez vite compte en jetant un œil sur vos statistiques.

3 réflexions sur “Ajoutez le temps de lecture à vos articles”

  1. On crée une fois dans Code Snippets pour l’en­semble du blog.
    Ensuite, on ajoute le short­code dans chaque article où on veut qu’il appa­raisse, ou on modi­fie le modèle d’ar­ticle et on ajoute : <div>Cet article prend <?php echo do_shortcode('[time2read /]'); ?>mn à lire et contient <?php echo do_shortcode('[wordscount /]'); ?> mots.</div>

  2. Si j’ai bien compris comment faire il suffit d’écrire « Cet article prend [time2read /] minutes à lire et comporte [word­scount /] mots. » à chaque début d’ar­ticles une fois que l’on à créer un short­code dans l’ex­ten­sion codes snippets

Les commentaires sont fermés.

Retour en haut
Les cookies que nous utilisons sont indispensables au bon fonctionnement de ce site. Il n'y a aucun pistage publicitaire et les données statistiques recueillies sont anonymisées.
J'ai compris