Une fonction WordPress qui analyse le temps de lecture estimé

Récemment, pour la publication de l’article sur l’installation de Fedora i3 sur un Thinkpad, j’ai ajouté une nouvelle fonction toute simple qui permet d’afficher une estimation du temps de lecture. Voici le bout de code PHP en question que vous pouvez ajouter dans votre fichier functions.php de votre site WordPress.

Wordpress logo

Analyse du code

1. Contexte général

  • add_filter('the_content', ...) :
    Cette fonction WordPress ajoute un filtre sur le contenu des articles. Le filtre the_content est appliqué à chaque fois que le contenu d’un article est affiché via la fonction the_content() dans les templates WordPress.
  • Fonction anonyme :
    Le filtre utilise une fonction anonyme qui reçoit en paramètre $content, le contenu HTML de l’article.

2. Fonctionnement détaillé

  • Condition if (is_single()) :
    Le code ne s’exécute que sur les pages d’un article unique (pas sur la page d’accueil, les archives, etc.). is_single() vérifie que la page affichée est bien un article individuel.
  • Calcul du nombre de mots : php$word_count = str_word_count(strip_tags(get_post_field('post_content', get_the_ID())));
    • get_the_ID() récupère l’ID de l’article en cours.
    • get_post_field('post_content', ...) récupère le contenu brut de l’article (sans mise en forme).
    • strip_tags() enlève toutes les balises HTML pour ne garder que le texte.
    • str_word_count() compte le nombre de mots dans ce texte.
  • Estimation du temps de lecture : php$reading_time = ceil($word_count / 200); Le temps de lecture est calculé en divisant le nombre de mots par 200 (une moyenne de 200 mots par minute, vitesse de lecture standard), puis arrondi à l’entier supérieur avec ceil().
  • Ajout du temps de lecture au contenu : php$content = 'Temps de lecture estimé : ' . $reading_time . ' minute(s).' . $content; Le texte indiquant le temps de lecture estimé est préfixé au contenu de l’article.

3. Ce que ça fait concrètement sur le site

  • Sur chaque page d’article individuel, avant le contenu principal, s’affiche une ligne indiquant par exemple :
    « Temps de lecture estimé : 3 minute(s). »
  • Cela informe le lecteur du temps approximatif nécessaire pour lire l’article.

En résumé

Ce code ajoute automatiquement une estimation du temps de lecture au début de chaque article WordPress en comptant les mots du contenu, divise par 200 pour estimer la durée en minutes, puis affiche cette information juste avant le texte de l’article.


Plutôt que d’installer un plugin supplémentaire, avec les potentielles vulnerabilités que ça peut apporter, préférez plutôt un bout de code que vous pourrez adapter selon vos besoins.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.