Skip to content

Tout pour WordPress, le développement web — et plus encore

✂️ 5 Astuces pour personnaliser les extraits dans WordPress

✂️ 5 Astuces pour personnaliser les extraits dans WordPress

Vous arrivez sur la page d’accueil de votre blog et vous voyez d’énormes blocs d’articles qui s’étalent sur trois écrans. Un lecteur ne fera pas défiler trois écrans pour un seul article, il partira. Ou l’inverse: les aperçus sont coupés en pleine phrase, le lien «Lire la suite» n’apparaît pas et le flux RSS ressemble à des fragments de phrases sans début ni fin.

Par défaut, WordPress coupe les extraits aux 55 premiers mots et ajoute des points de suspension standards. Pas de réglage de longueur, pas de personnalisation du texte du lien, et les extraits ne sont même pas disponibles pour les Pages. Tout cela peut être corrigé, mais pas en cochant des cases: en ajoutant quelques lignes de code.

Voici 5 techniques qui fonctionnent: de la modification de la longueur des extraits pour l’ensemble du site à l’ajustement fin par catégorie et à l’insertion automatique d’un lien «Lire la suite». Chacune avec un extrait de code prêt à l’emploi que vous copiez et collez dans functions.php.

💡 Aperçu rapide:

  • Modifier la longueur des extraits pour tout le site avec une fonction dans functions.php
  • Définir des longueurs différentes selon les catégories avec la condition in_category()
  • Ajouter un lien «Lire la suite» à la fin de chaque extrait
  • Activer les extraits pour les Pages WordPress avec une ligne de code
  • Gérer les extraits sans programmation avec le plugin Advanced Excerpt

Qu’est-ce qu’un extrait dans WordPress et comment il fonctionne

Un extrait est une brève description d’un article qui apparaît dans les listes d’articles: sur la page d’accueil, dans les archives de catégories, dans les résultats de recherche et dans le flux RSS. Contrairement à la balise <!--more-->, qui coupe le contenu à un point arbitraire, l’extrait est une entité indépendante: WordPress utilise soit votre texte manuel provenant de la metabox «Extrait», soit il le génère automatiquement à partir des 55 premiers mots de l’article.

Les extraits manuels sont toujours prioritaires. Si vous avez rempli le champ «Extrait» dans l’éditeur, le système affichera exactement ce contenu, en ignorant la coupure automatique. Cela vous donne un contrôle total: vous pouvez rédiger un résumé pertinent au lieu de vous contenter des deux premières phrases qui se trouvent au début du texte.

Le problème, c’est que la metabox «Extrait» est masquée par défaut. Elle s’active dans les «Options de l’écran» (bouton en haut de la page d’édition d’article), cochez la case à côté de «Extrait» et le champ apparaîtra sous l’éditeur. Ensuite, la personnalisation commence: les cinq techniques ci-dessous couvrent tous les cas de figure habituels.

1. Modifier la longueur des extraits via functions.php

C’est la base. WordPress coupe par défaut à 55 mots, ce qui n’est pas assez pour un aperçu clair mais suffisant pour qu’un lecteur comprenne le sujet. Si vous avez besoin de plus (ou de moins), le filtre excerpt_length résout le problème avec une seule fonction.

Ce que fait le code: il remplace le nombre de mots que WordPress renvoie dans the_excerpt(). Il ne touche pas aux extraits manuels: si vous avez rempli le champ dans l’éditeur, il s’affichera tel quel.

  • Ouvrez functions.php dans votre thème (Apparence → Éditeur de thème → functions.php) ou via FTP
  • Ajoutez à la fin du fichier (avant ?> s’il existe):
1function my_excerpt_length($length) {
2 return 110;
3}
4add_filter('excerpt_length', 'my_excerpt_length');
  • Enregistrez le fichier

Le nombre 110 correspond au nombre de mots. Pour un blog classique, 80 à 120 mots donnent 3 à 4 phrases, assez pour un aperçu pertinent sans surcharger la page d’accueil. Les lecteurs RSS apprécieront aussi: ils ont leurs propres limites, et un extrait trop long risque d’être coupé de manière plus agressive que prévu.

Si vous utilisez un thème bloc (Block Theme, FSE), functions.php peut être absent ou ne pas fonctionner comme prévu. Dans ce cas, créez un thème enfant ou utilisez le plugin Code Snippets, qui ajoute des extraits de code sans modifier les fichiers du thème.

2. Longueurs d’extrait différentes selon les catégories

Les actualités nécessitent 30 mots, tandis que les tests et les guides en nécessitent 100 à 120. Le filtre excerpt_length dans sa version de base donne une seule valeur pour tout le site, ce n’est pas flexible. Le code suivant différencie la longueur par catégorie.

Scénario A, une catégorie avec une longueur spéciale. Vous avez une catégorie «Tests» où les extraits doivent être plus courts:

1function excerpt_length_category($length) {
2 if (in_category('Reviews')) {
3 return 20;
4 } else {
5 return 60;
6 }
7}
8add_filter('excerpt_length', 'excerpt_length_category');

Remplacez Reviews par le slug de votre catégorie, et les nombres par ce dont vous avez besoin.

Scénario B, plusieurs catégories avec des longueurs différentes. Une cascade if/elseif/else couvre trois niveaux: une catégorie, un groupe de catégories et tout le reste:

1function excerpt_length_category($length) {
2 if (in_category('Review')) {
3 return 35;
4 } elseif (in_category(array('News', 'Videos', 'Editorial'))) {
5 return 60;
6 } else {
7 return 55;
8 }
9}
10add_filter('excerpt_length', 'excerpt_length_category');

in_category() accepte un slug de catégorie (chaîne) ou un tableau de slugs. Les conditions sont vérifiées dans l’ordre, la première correspondance se déclenche. Dans l’exemple ci-dessus: les articles de «Review» reçoivent 35 mots, ceux de «News», «Videos» et «Editorial» en reçoivent 60, tout le reste reçoit 55.

Après avoir enregistré, vérifiez la page d’accueil et quelques pages de catégories: les longueurs d’extrait doivent différer selon la catégorie à laquelle l’article est rattaché.

3. Ajouter un lien «Lire la suite» à la fin de l’extrait

L’extrait est coupé et les lecteurs ne comprennent pas toujours qu’il s’agit seulement d’un aperçu, pas de l’article complet. Un lien à la fin de l’extrait résout le problème: un appel explicite à cliquer pour lire en entier.

Exemple de lien Lire la suite à la fin d'un extrait WordPress

WordPress place par défaut [...] là où il coupe, mais ce n’est pas un lien. Le filtre excerpt_more remplace les points de suspension par une chaîne personnalisée contenant du HTML:

1function excerpt_readmore($more) {
2 return '... <a href="' . get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>';
3}
4add_filter('excerpt_more', 'excerpt_readmore');

Ce que vous pouvez modifier:

  • Le texte du lien, remplacez Read More par votre version, par exemple Continue reading ou Learn more
  • La classe CSS, readmore dans l’attribut class peut être remplacée par la vôtre et stylisée via CSS (couleur, taille, espacement, soulignement)
  • Le séparateur, les points de suspension avec espace '... ' avant la balise <a> peuvent être supprimés ou remplacés par | ou ,

Après avoir enregistré, ouvrez la page d’accueil du blog ou une archive: chaque extrait aura un lien cliquable vers l’article complet à la fin. Cela fonctionne aussi dans le flux RSS (la plupart des lecteurs affichent correctement les liens HTML).

4. Activer les extraits pour les Pages WordPress

Les Pages dans WordPress ne prennent pas en charge les extraits par défaut. Le type de publication page n’est pas enregistré avec la prise en charge de excerpt, et la metabox n’apparaît pas dans l’éditeur, même si vous l’activez dans les «Options de l’écran». Mais parfois vous en avez besoin: une page d’atterrissage avec des aperçus de pages enfants, un affichage personnalisé via WP_Query, des pages de services sous forme de cartes.

La solution est une fonction qui ajoute la prise en charge des extraits au type de publication page:

1function wploop_pages_excerpt() {
2 add_post_type_support('page', 'excerpt');
3}
4add_action('init', 'wploop_pages_excerpt');

Après avoir sauvegardé functions.php:

  • Allez dans l'éditeur de n'importe quelle page
  • Cliquez sur «Options de l'écran» en haut
  • Cochez la case «Extrait», elle apparaît maintenant
  • Faites défiler la page vers le bas, le champ d'extrait est apparu

Si vous utilisez un type de publication personnalisé (CPT), remplacez page par le slug de votre CPT, le fonctionnement est identique. Lors de l'enregistrement d'un CPT via register_post_type(), vous pouvez directement spécifier 'supports' => array(..., 'excerpt') et éviter du code supplémentaire.

5. Gérer les extraits avec le plugin Advanced Excerpt

Vous ne voulez pas toucher au code? Le plugin Advanced Excerpt offre un contrôle visuel sur tous les aspects des extraits via le panneau d’administration.

Page de réglages de l'extension Advanced Excerpt dans l'administration WordPress

Après installation et activation (gratuit, depuis le dépôt WordPress), une page Advanced Excerpt apparaît dans le menu «Réglages» avec les options suivantes:

  • Longueur de l’extrait, en caractères ou en mots. Les caractères sont plus précis pour le contrôle de la mise en page, les mots pour la lisibilité
  • Points de suspension, le symbole ou le code HTML qui termine l’extrait. La valeur par défaut est &hellip; (points de suspension ). Peut être remplacé par [...], une flèche, une icône, ou laissé vide
  • Méthode de troncature, par caractères (un mot peut être coupé en plein milieu) ou par phrases (toujours une phrase complète, mais l’extrait sera plus long que la limite indiquée)
  • Lien «Lire la suite», activer/désactiver, définir le texte, envelopper dans du HTML personnalisé
  • Ne pas afficher les extraits manuels, si activé, le plugin génère toujours les extraits automatiquement, même si vous avez rempli le champ manuellement
  • Supprimer les shortcodes de l’extrait, gardez absolument cette option activée pour que [contact-form-7] ou [shortcode] ne s’affichent pas dans l’aperçu
  • Filtre, choisissez quelle fonction le thème utilise pour produire les extraits: the_excerpt(), the_content(), ou les deux. En cas de doute, laissez les deux cases cochées
Paramètres de filtrage supplémentaires dans l'extension Advanced Excerpt

Le plugin utilise les mêmes hooks excerpt_length et excerpt_more que le code manuel des conseils 1 à 3, mais les enveloppe dans une interface. La documentation développeur sur le Wiki GitHub décrit les filtres pour une intégration personnalisée.

En 2026, le plugin est actif sur plus de 80 000 sites mais se met à jour peu fréquemment: la dernière version est sortie en janvier 2024 et est testée jusqu’à WordPress 6.4. Avant d’installer sur une version récente de WordPress, vérifiez la compatibilité dans un environnement de staging.

Avant de passer aux questions fréquentes, une courte vidéo sur le travail avec les extraits dans WordPress en pratique:

⁉️🤔 Questions fréquentes

Quelle est la différence entre un extrait manuel et la balise <!--more-->?

Un extrait est un champ séparé qui est produit via la fonction the_excerpt() dans les templates du thème. La balise <!--more--> est insérée dans le corps de l’article et coupe the_content() à un point précis. Les extraits s’affichent dans les listes d’articles et le flux RSS, la balise more ne fonctionne que là où the_content() est utilisée. Pour un résumé bref dans les archives, utilisez les extraits, pour couper un article long sur la page d’accueil, la balise more est suffisante.

Pourquoi l’extrait ne s’affiche-t-il pas alors que je l’ai rédigé dans l’éditeur?

Le thème n’appelle pas the_excerpt() dans le template requis. Vérifiez les templates archive.php, category.php, home.php et search.php. Si the_content() s’y trouve, les extraits manuels sont ignorés. Remplacez par the_excerpt() ou utilisez une construction conditionnelle if (has_excerpt()) { the_excerpt(); } else { the_content(); }.

Puis-je afficher une image à la une à côté de l’extrait?

Oui, le thème doit appeler the_post_thumbnail() avant the_excerpt() dans la boucle. La plupart des thèmes WordPress modernes le font par défaut. Si ce n’est pas le cas, ajoutez l’appel à l’image à la une dans le template avant l’extrait. Pour un balisage personnalisé, enveloppez les deux appels dans <div class="post-card"> et stylisez via CSS.

Comment supprimer les extraits uniquement de la page d’accueil, tout en les conservant dans les archives?

Utilisez la balise conditionnelle is_home() à l’intérieur du filtre. Par exemple, dans functions.php:

1 function disable_excerpt_on_home($excerpt) {
2 if (is_home()) {
3 return '';
4 }
5 return $excerpt;
6 }
7add_filter('get_the_excerpt', 'disable_excerpt_on_home');

Pour des réglages plus précis par type de page, catégorie ou type de contenu, utilisez le plugin Advanced Excerpt du conseil 5: ses paramètres comportent des cases «Désactiver sur...» pour la page d’accueil, les archives, la recherche et les pages individuelles.

Que faire avec les extraits dès maintenant

Ordre de mise en œuvre, du plus simple au plus complexe. Commencez par le conseil 1: une fonction, un nombre, et la longueur des extraits sur l’ensemble du site est déjà sous contrôle. Ajoutez ensuite le lien «Lire la suite» (conseil 3), c’est essentiel pour le taux de clic sur la page d’accueil et dans le flux RSS. Si vous gérez un blog avec des rubriques de formats différents, le conseil 2 sur la longueur par catégorie éliminera la dissonance entre les actualités et les articles longs.

Adoptez le plugin Advanced Excerpt (conseil 5) si vous voulez éviter complètement le code ou si votre thème utilise une manière non standard de produire le contenu et que les filtres excerpt_length/excerpt_more ne se déclenchent pas. Dans les autres cas, le code dans functions.php est plus fiable: moins de dépendances, ne crée aucune charge, fonctionne avec n’importe quel thème.

1