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 cer­taine­ment remar­qué, en dessous du titre de chaque arti­cle, que le temps de lec­ture et le nom­bre de mots sont affichés.

Pourquoi avoir rajouté ces indi­ca­tions ? Il sem­ble, d’après plusieurs blogueurs, que l’a­jout de ces indi­ca­tionsréduisent le taux de rebond, par­fois de manière sig­ni­fica­tive.

L’in­ter­naute est un homme pressé — paraît-il. Sauf quand il trou­ve une infor­ma­tion dont il a besoin.

Les études menées par les psy­cho­logues Claude Mess­ner et Michaela Wänke mon­trent que plus le lecteur a d’indi­ca­tions annex­es (per­ti­nentes), plus l’im­pli­ca­tion est impor­tante.

Dans le cas présent, il sait com­bi­en de temps il va pass­er à la lec­ture de votre arti­cle, et si le nom­bre de mots est élevé, c’est (sub­jec­tive­ment) un indice de qual­ité.

Ces don­nées n’ont pas d’u­til­ité pour un pro­duit par exem­ple, l’in­térêt n’est pas dans le nom­bre de mots sur la page, ni dans le temps de lec­ture, mais dans le taux de con­ver­sion !

Il ne va peut-être pas tout lire, mais au moins, il aura eu un aperçu du con­tenu de l’ar­ti­cle.

Vous trou­verez des exten­sions pour le temps de lec­ture, mais en fait, un sim­ple bout de code suf­fit, et per­met plus de sou­p­lesse.

Voici com­ment procéder…

Enregistrer temps de lecture et nombre de mots

Placez le bout de code suiv­ant dans votre fichi­er functions.php, ou mieux, créez un nou­veau snip­pet  dans Code Snip­pets :

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­reg­istrement d’un arti­cle — si vous avez plusieurs arti­cles déjà en ligne, vous pou­vez tous les sélec­tion­ner (par page), choisir Mod­i­fi­er dans les Actions groupées et Enreg­istr­er, même sans effectuer la moin­dre mod­i­fi­ca­tion.

C’est la méth­ode que j’ai choisi pour ce site et les 10 arti­cles précédem­ment pub­liés.

Mais si vous avez des cen­taines d’ar­ti­cles déjà pub­liés, vous pour­rez dans un pre­mier temps créer une boucle de type fore­ach par exem­ple, l’exé­cuter une fois, puis la sup­primer, plutôt que de pass­er page après page pour enreg­istr­er une ving­taine d’ar­ti­cles à la fois.

Pour ceux qui ne con­nais­sent pasCode Snip­pets, direc­tion l’ar­ti­cle Cen­tralisez vos bouts de code avec « Code Snip­pets »où vous trou­verez toutes les expli­ca­tions quant à l’u­til­ité et à l’u­til­i­sa­tion de cette exten­sion.

Vous avez les don­nées stock­ées, il ne vous reste plus qu’à…

Afficher temps de lecture et nombre de mots

Pour affich­er ces don­nées, il suf­fit de récupér­er l’op­tion pour l’ar­ti­cle 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ér­erez ce bout de code dans vos fichiers de mod­èles (single.php par exem­ple), là où vous avez décidé d’af­fich­er l’in­for­ma­tion.

Mais il est aus­si pos­si­ble d’af­fich­er ces don­nées en util­isant un short­code, voici com­ment faire…

Afficher avec un shortcode

Si vous souhaitez affich­er le temps de lec­ture ou le nom­bre de mot dans l’ar­ti­cle, il suf­fit de créer un short­code.

Voici le short­code pour le temps de lec­ture :

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 nom­bre 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ér­er vos short­codes dans l’ar­ti­cle, comme suit (le résul­tat ligne suiv­ante) :

Cet arti­cle prend [time2read /] min­utes à lire et com­porte [wordscount /] mots.

Cet arti­cle prend 3 min­utes à lire et com­porte 729 mots.

Et si vous ne souhaitez plus affich­er le temps de lec­ture (ou le nom­bre de mots, ou les deux) sur votre blog…

Supprimez les données

Vous pour­rez sup­primer l’en­trée cor­re­spon­dante en ajoutant tem­po­raire­ment ce bout de code dans Code Snip­pet ou — dans le pire des cas — dans le fichi­er 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 suf­fit d’une seule exé­cu­tion pour sup­primer toute trace sur votre blog. Rafraîchir la page d’ac­cueil devrait suf­fire. Vous pou­vez ensuite sup­primer 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 ren­drez vite compte en jetant un œil sur vos sta­tis­tiques.

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

  1. Si j’ai bien com­pris com­ment faire il suf­fit d’écrire “Cet arti­cle prend [time2read /] min­utes à lire et com­porte [word­scount /] mots.” à chaque début d’ar­ti­cles une fois que l’on à créer un short­code dans l’ex­ten­sion codes snip­pets

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

Les commentaires sont fermés.

Retour en haut
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept