Skip to content

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

✂️ Comment modifier la longueur de l'extrait dans WordPress

✂️ Comment modifier la longueur de l'extrait dans WordPress

Vous visitez les archives d’un blog et vous voyez des «briques»: un article affiche une annonce qui prend la moitié de l’écran, un autre se résume à deux lignes sèches. Cela vient du fait que WordPress tronque par défaut les extraits à 55 mots, un chiffre inventé il y a près de deux décennies et jamais modifié depuis.

Le problème, c’est qu’une longueur universelle n’est jamais la bonne. Un site d’actualité a besoin de 20 mots, un article de fond de 80, et un portfolio de 10 seulement. Bonne nouvelle: vous pouvez définir votre propre longueur sans extension, avec un simple filtre dans functions.php. Et sans mettre votre site en danger.

💡 Aperçu rapide:

  • Comprendre ce qu’est un extrait et pourquoi 55 mots ne sont pas une règle
  • Modifier la longueur via le filtre excerpt_length (2 lignes de code)
  • Définir des longueurs différentes pour la page d’accueil, les catégories et les types de publication personnalisés
  • Choisir une extension si le code n’est pas une option, et savoir ce qui fonctionne en 2026
  • Réponses aux questions: extrait vs «Lire la suite», contenu dupliqué, annonces personnalisées

Qu’est-ce qu’un extrait et pourquoi sa longueur est importante

Un extrait est un résumé automatique de l’article que WordPress génère à partir des 55 premiers mots du texte. Il apparaît dans les flux du blog, sur les pages de catégorie, dans les résultats de recherche interne et dans les flux RSS. Si l’auteur n’a pas rempli manuellement le champ «Extrait», le système automatique prend le relais.

Le chiffre 55 provient des premières versions du CMS et n’a pas changé depuis la version 2.7. À l’époque, un article faisait en moyenne 300 à 400 mots, et 55 constituaient un compromis raisonnable. Aujourd’hui, un article type sur un blog tech dépasse les 1500 mots, et un extrait trop court perd son sens: les lecteurs ne comprennent pas de quoi parle l’article, et les moteurs de recherche voient un texte tronqué dans les snippets.

Au-delà de l’esthétique, il y a un aspect technique. Si un extrait est coupé en pleine phrase, Google peut utiliser ce fragment dans la meta description, et votre snippet dans les résultats de recherche paraît négligé. Un extrait propre, significatif et d’une longueur définie règle la situation.

Modifier la longueur via le filtre excerpt_length

La méthode la plus fiable consiste à utiliser le filtre natif excerpt_length. Il existe dans le cœur de WordPress depuis la version 2.7.0 et ne dépend ni des thèmes ni des extensions. Il fonctionne partout où la fonction the_excerpt() est appelée.

Voici le code minimal pour le fichier functions.php de votre thème enfant:

1/**
2 * Changes excerpt length to 30 words.
3 *
4 * @param int $length Current excerpt length.
5 * @return int New excerpt length.
6 */
7function mytheme_excerpt_length( $length ) {
8 return 30;
9}
10add_filter( 'excerpt_length', 'mytheme_excerpt_length', 999 );

Ce qui importe ici:

  • La priorité 999 est le détail clé. WordPress applique en interne son propre filtre avec la priorité par défaut (10). Si vous ne spécifiez pas une priorité élevée, votre callback s’exécute avant celui du système et se fait écraser par la valeur 55. 999 garantit que votre filtre s’exécute en dernier.
  • Retournez un entier, uniquement un entier. Une chaîne '30' déclenchera un avertissement PHP en mode strict.
  • Thème enfant: ne modifiez pas le functions.php du thème parent, les changements seraient perdus lors d’une mise à jour. Si vous n’avez pas de thème enfant, créez-en un ou utilisez l’extension Code Snippets.

Le code ci-dessus modifie la longueur pour tous les appels à the_excerpt() sur le site. Le nombre 30 est un exemple; remplacez-le par le vôtre. Pour un site d’actualité, 20 à 30 mots est une valeur typique; pour un blog d’analyse, 50 à 70; pour un portfolio, 10 à 15.

Si votre site fonctionne en HTTPS et utilise une version récente de PHP (8.0+), vous pouvez l’écrire de façon encore plus concise avec une fonction fléchée:

1add_filter( 'excerpt_length', fn( $length ) => 40, 999 );

Mais pour la compatibilité avec des projets plus anciens, privilégiez la première variante avec une fonction nommée.

Des longueurs différentes selon les pages

Un chiffre universel est pratique, mais rarement optimal. Sur la page d’accueil du blog, vous devez accrocher les lecteurs avec un résumé étoffé (60 à 70 mots), tandis que dans un widget «Articles similaires», une ligne brève de 15 à 20 mots suffit. WordPress vous permet de définir une logique conditionnelle grâce aux fonctions standard de vérification du contexte:

1function mytheme_conditional_excerpt_length( $length ) {
2 if ( is_front_page() && is_home() ) {
3 return 70; // Blog home page
4 }
5 if ( is_category() || is_tag() ) {
6 return 45; // Category and tag pages
7 }
8 if ( is_search() ) {
9 return 30; // Search page
10 }
11 if ( is_page_template( 'template-portfolio.php' ) ) {
12 return 15; // Portfolio template
13 }
14 return 55; // Everything else
15}
16add_filter( 'excerpt_length', 'mytheme_conditional_excerpt_length', 999 );

Cette approche couvre la grande majorité des scénarios réels. La même logique s’applique aux types de publication personnalisés via is_singular( 'product' ) ou is_post_type_archive( 'portfolio' ).

Une nuance importante: tous les thèmes n’utilisent pas honnêtement the_excerpt(). Certains thèmes premium (en particulier les plus anciens avec leurs propres constructeurs de page) appellent directement wp_trim_words() ou utilisent des wrappers personnalisés. Le filtre excerpt_length ne fonctionnera pas dans ces cas-là. Si rien n’a changé après avoir ajouté le code, ouvrez le functions.php du thème et cherchez les appels alternatifs; le problème se résout généralement en remplaçant la fonction personnalisée par la fonction standard the_excerpt().

Les extensions: est-ce que cela vaut le coup?

Le marché des extensions de gestion d’extraits est restreint; la plupart des besoins sont couverts par le code des sections précédentes. L’extension historiquement populaire Advanced Excerpt (plus de 100 000 installations actives par le passé) n’a pas été mise à jour ni testée avec les dernières versions de WordPress depuis 2024. Sous WP 6.8+, l’extension ne fonctionne pas, et les avis des utilisateurs le confirment. L’installer en 2026 n’a aucun sens.

Ce qui est réellement disponible:

  • Code Snippets est une extension gratuite qui vous permet d’ajouter du code PHP depuis le panneau d’administration sans modifier functions.php. Fonctionne pour n’importe quel extrait de cet article: collez le filtre excerpt_length, activez, c’est fait. Avantage: ne craint pas les mises à jour du thème. Téléchargement: Code Snippets sur WordPress.org.
  • WPCode est un outil plus récent avec une interface visuelle pour insérer des snippets, une logique conditionnelle et une bibliothèque cloud de recettes prêtes à l’emploi. Si vous gérez plusieurs sites et ne voulez pas dupliquer du code, WPCode est plus pratique.

Ces deux extensions ne sont pas spécifiquement spécialisées dans les extraits; elles répondent à un besoin plus large. Mais pour notre objectif, cela suffit: vous ajoutez le filtre une fois et vous l’oubliez.

Extension Code Snippets dans le panneau d'administration WordPress

Si vous voulez absolument une interface graphique dédiée aux extraits (champs de saisie de longueur, cases à cocher, sélection des balises HTML), en 2026, il n’existe pas d’extension distincte activement maintenue avec une telle fonctionnalité dans le dépôt WordPress.org. Toutes celles qui existaient auparavant sont soit abandonnées, soit en conflit avec PHP 8.2+. Dans cette situation, apprendre le filtre excerpt_length est plus fiable: deux lignes de code qui ne casseront pas avec une mise à jour du CMS.

Avant de passer aux questions fréquentes, voici une courte vidéo montrant le processus d’ajout de code à un thème WordPress:

⁉️🤔 Questions fréquentes

Quelle est la différence entre un extrait et la balise «Lire la suite»?

La balise <!--more--> (bouton «Lire la suite») coupe l’article à l’endroit où vous la placez et conserve toute la mise en forme: images, listes, titres. Un extrait est toujours du texte brut sans balises HTML (sauf si une extension est utilisée). «Lire la suite» contrôle l’affichage sur la page de l’article elle-même; l’extrait contrôle l’affichage sur les pages d’archive. Ce sont deux mécanismes différents qui peuvent fonctionner simultanément.

L’extrait crée-t-il du contenu dupliqué pour le SEO?

Non. Si l’extrait est généré par la fonction the_excerpt() sur les pages d’archive, les moteurs de recherche le voient comme une meta description pour ces pages, et non comme du contenu dupliqué. De plus, un extrait correctement configuré aide Google à former un snippet pertinent. Les problèmes de duplication n’apparaissent que si vous insérez le texte complet de l’article à la fois sur la page d’archive et sur la page individuelle sans URL canonique.

Comment définir un texte d’annonce entièrement personnalisé?

Dans l’éditeur d’article de WordPress, il existe un champ «Extrait». S’il est rempli, le système utilise votre texte à la place de l’extrait automatique. Dans l’éditeur classique, activez le champ via «Options de l’écran» en haut à droite. Dans l’éditeur de blocs (Gutenberg), utilisez l’onglet latéral «Article» → «Extrait». Un extrait personnalisé a la priorité sur tout filtre excerpt_length.

Puis-je conserver le HTML dans les extraits automatiques?

Le filtre standard excerpt_length ne gère pas les balises; wp_trim_excerpt() supprime toujours le HTML. Pour conserver la mise en forme, vous avez besoin d’une approche distincte: soit une extension (mais aucune ne fonctionne en 2026), soit le remplacement du générateur d’extrait standard via le filtre wp_trim_excerpt par votre propre code. C’est une technique avancée destinée aux développeurs.

Pourquoi le filtre ne fonctionne-t-il pas avec mon thème?

Trois raisons typiques: 1) le thème n’appelle pas the_excerpt() mais utilise une fonction personnalisée (vérifiez les templates archive.php, category.php, search.php); 2) la priorité du filtre est inférieure à celle du gestionnaire interne de WordPress (utilisez 999); 3) le fichier functions.php a été modifié dans le thème parent plutôt que dans le thème enfant, et les changements n’ont pas été pris en compte.

Modifier la longueur des extraits: code ou extension?

Le filtre excerpt_length couvre les besoins de la grande majorité des sites WordPress. Deux lignes dans functions.php, et la longueur des extraits devient exactement ce que vous voulez: sur la page d’accueil, dans les catégories, dans la recherche, pour les types de publication personnalisés. Il n’est pas nécessaire de chercher des extensions d’extrait dédiées en 2026; elles sont soit abandonnées, soit redondantes.

Si vous n’avez jamais modifié functions.php, commencez par Code Snippets. C’est gratuit, sûr et indépendant des mises à jour du thème. Une fois à l’aise, la logique conditionnelle avec is_front_page() et is_category() vous ouvrira un niveau de contrôle qu’aucune extension d’extrait avec interface graphique n’a jamais offert.