Modifier le résumé des articles de WordPress (the_excerpt)

WordPress permet d'afficher un extrait des articles dans ses listings (catégories, tags...). Lorsqu'on liste une série d'articles, il est effectivement plus judicieux d'en n'afficher qu'un extrait, plutôt que l’article entier.

Comment mettre en place le résumé (the_excerpt) de WordPress ?

Aller dans Réglages > Lecture, puis à "Pour chaque article d’un flux, fournir" sélectionner "L'extrait" et enregistrer.

Si le résumé ne s'affiche toujours pas, c'est que votre thème ne le gère pas. Pour modifier ceci, rendez-vous dans Apparence > Editeur et afficher la page qui gère votre boucle (loop.php, index.php ou archive.php par exemple). Là, chercher ceci :

<?php the_content(); ?>

Et remplacer le par :

<?php the_excerpt(); ?>

A noter que si votre thème ne gère pas la boucle de manière centralisée (dans un fichier loop.php par exemple), il vous sera nécessaire de faire cette modification sur toutes les pages listant des articles (index.php, archives.php, search.php...).

Comment utiliser le résumé de WordPress ?

Wordpess va désormais afficher comme résumé les 55 premiers mots de vos articles, en finissant par [...].

Si vous trouvez que le début d'un article n'est pas représentatif de son contenu, vous avez la possibilité d'insérer le texte de votre choix dans le champs Extrait présent sur chaque article en dessous de la fenêtre de saisie de votre article.

A noter que dans tous les cas, les images, liens, sauts de ligne et tout autre marqueur html seront retirés de l'extrait automatiquement.

Comment modifier la longueur de l'extrait ?

Si 55 mots ne vous conviennent pas et que vous désirez ajuster la longueur du excerpt manuellement, il vous suffit d'insérer dans le fichier fonctions.php présent à la racine de votre thème (si ce fichier n'existe pas, créez-le et encadrer ce code de balises php) :

function comogene_excerpt_length($length) {
     return 40;
}
add_filter('excerpt_length', 'comogene_excerpt_length');

A noter que 40 est ici le nombre de mots du résumé; à vous d'ajuster cette valeur à votre convenance.

Comment remplacer [...] par Lire la suite... avec un lien ?

Pour remplacer le [...], qui n'est pas très heureux, par une lien textuel "Lire la suite...", voici le code à insérer dans ce même fichier fonctions.php :

function comogene_excerpt($text) {
       return str_replace(' [...]', '... <a href="'.get_permalink().'">Lire la suite</a>', $text);

}
add_filter('the_excerpt', 'comogene_excerpt');

Update du 18/08/2013

Attention, depuis la version 3.6 de WordPress, le code précédent ne fonctionne plus, préférez celui-ci :

function comogene_more( $more ) {
           return '... <a href="'. get_permalink( get_the_ID() ) . '">Lire la suite...</a>';
}
add_filter('excerpt_more', 'comogene_more');

A noter que c'est le code utilisé sur comogène; libre à vous d'insérer un saut de ligne ou d'agrémenter ce lien d'une class css ou d'un div par exemple.

Poursuivre votre lecture

10 commentaires : Modifier le résumé des articles de WordPress (the_excerpt)

  1. FERREIRA Carlos

    22 janvier 2014

    Salut

    Merci pour cet article.

    J'utilise le thème Responsive Pro sur l'un de mes sites et je galère pour pouvoir afficher une miniature dans les extraits d'articles comme tu l'as fait pour ton blog. C'est exactement ce que je voudrai.
    J'ai tout essayé: Image à la une, divers Plugins mais je n'arrive pas obtenir que je veux.

    Aurais-tu une petite idée?

    D'avance merci

  2. Laurent

    22 janvier 2014

    Bonjour Carlos,

    pour afficher l'image à la une d'un article, il suffit d'insérer ce code dans ta loop, à l'endroit où tu souhaites qu'elle s'affiche :

     
    Pour plus de détail sur cette fonction, voir the_post_thumbnail() dans le codex

  3. FERREIRA Carlos

    22 janvier 2014

    Merci Laurent pour ta réponse.

    En fait, ce code figure déjà dans le thème.

    Ce que j'aurai voulu, c'est, à l'instar de ton article http://comogene.com/tips-wordpress/variable-globale-page-theme-wordpress/, que le thumbnail apparaisse uniquement dans les extraits mais pas dans le post.
    C'est peut-être un peu compliqué mais je m'arrache les cheveux depuis 2 jours sans succès.

    merci de ton aide

  4. Laurent

    22 janvier 2014

    Ah, alors si la miniature s'affiche aussi dans le détail d'un post, c'est que ce code est également présent dans le fichier single.php de ton template. Il te suffit de le retirer pour ne pas que la miniature s'y affiche.

  5. Carlos

    22 janvier 2014

    Malheureusement le fichier single.php ne contient pas ce code. Plus j'avance et plus je me dis que l'utilisation de ce thème n'est pas très heureuse finalement.

    Merci de ton aide en tout cas.

    Carlos

  6. Luc

    11 mai 2014

    Bonjour,
    J'utilise le thème twentyfourteen. je souhaite n'afficher qu'une partie des article (extrait) via la fonction the_exerp mais suivant ton tuto, je n'y suis pas parvenu. Je ne trouve nulle part la fonction the_content à remplacer. J'ai commencé par choisir afficher les extrait dans réglage/lecture mais rien n'y fait.
    Une soluce ?
    Merci

  7. Laurent

    12 mai 2014

    Bonjour Luc,
    sur le thème twentyfourteen, les boucles sont dans les fichiers "content...". La boucle principale est dans le fichier content.php, dans lequel tu trouveras "the_content" presque à la fin.

  8. Luc

    12 mai 2014

    Bonjour Laurent, Merci pour ta réponse rapide et correcte de surcroît ! La modification m'a donné le résultat escompté.
    Un petit plus que j'aimerais serait d'avoir un lien "continuer, poursuivre" ou un truc du genre en lieu et place des ... Est-ce possible ?
    Cordialement.

  9. Laurent

    12 mai 2014

    Super, et oui c'est possible, il te suffit de suivre le dernier point de mon article, en tenant compte de l'update du 18/08/13, et en remplaçant le texte "Lire la suite..." par celui qui te convient.

  10. Luc

    12 mai 2014

    Ca marche nickel ! Un grand merci.
    Faire attention quand on recopie le texte dans son fichier fonction.php de virer les espaces insécables qui peuvent s'y glisser.
    Cordialement.

Laisser un commentaire

Si vous insérez du code, merci d'utiliser les balises [php] en début et [/php] en fin, ou [html] et [/html]...