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

24 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 :

    < ?php
    if ( has_post_thumbnail() ) { // Si il y a une image à la une
         the_post_thumbnail();
    }
    ?>

     
    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.

  11. Sebastien

    6 décembre 2014

    Bonjour, merci beaucoup !

  12. Guillaume Bogdan

    30 janvier 2015

    Bonjour, j'essaye de faire ceci à mon site sous le thème twenty twelve, mais malheureusement je ne trouve le nulle part, du coup si vous pouviez m'aider cela serait super.

    Je vous remercie par avance et vous souhaite une bonne fin de journée.

  13. Laurent

    30 janvier 2015

    Bonjour Guillaume, qu'est-ce-que vous ne trouvez pas ?

  14. Guillaume Bogdan

    30 janvier 2015

    Zut excusez moi, j'avais mal copié le lien. Je ne trouve pas ceci dans aucune de mes pages : et mon thème est Twenty Twelve.
    Merci à vous !

  15. Guillaume Bogdan

    31 janvier 2015

    Je tiens vraiment à m'excuser pour ce troisième message mais je viens de me rendre compte que les copiers/collers ne marchent pas. C'est le "the_content" que je ne trouve pas afin de changer les articles dans le flux en extraits. Je me sens un peu bête de pourrir vos commentaires.

    J'espère que vous n'en avez pas trop marre de moi.

    Cordialement.

  16. Laurent

    2 février 2015

    Guillaume, aucun souci :)
    Dans Twenty Twelve, les boucles sont dans des fichiers dont le nom commence par "content", comme content-aside.php.

  17. afifa

    1 avril 2015

    Merci :)

  18. Léa A

    21 juin 2015

    Bonjour,

    Je cherche également à insérer des extraits dans mon thèmes Hemingway, mais, je ne trouve pas ÉDITEUR dans APPARENCE pour coller le code. Je ne comprends pas où insérer ce code.

    Merci de votre aide !

    Bien à vous.

  19. Charly Mercier

    17 juillet 2015

    Bonjour,

    J'ai choisi le Theme gratuit CARZINE, je souhaiterais que les images à la une n'apparaissent pas lorsque j'ouvre l'article. Je cherche mais je ne trouve pas. Auriez vous une idée ? Par avance merci.

  20. Charly Mercier

    17 juillet 2015

    Merci j'ai trouvé : dans "single_post_area.php", j'ai supprimé :

    'img-responsive'));
    endif;
    ?>

  21. Charly Mercier

    17 juillet 2015

    J'ai de nouveau un question sur le meme theme :
    Je souhaiterais ecrire moi meme les extraits mais je ne trouve pas comment avec ce theme, si vous pouvez m'aider ?

  22. Lyn

    1 mars 2016

    Un grand merci pour vos conseils, grâce à vous j'ai pu insérer un lien à la fin de mes extraits, j'avais peur de devoir me les repayer un par un ;)
    Par contre j'ai un système de notation et il s'affiche en texte dans mon extrait et non pas sous forme d'étoile (plugin kk star ratings), savez-vous où pourrait se trouver le code pour le modifier ?

  23. Edwige

    9 novembre 2016

    Merci beaucoup pour cet article et les commentaires qui m'ont bien aidé!

    Par contre maintenant que mes articles apparaissent en extraits, il n'y a plus la photo que j’intègre au début de chaque article (et oui je n'ai jamais pensé à mettre l'image en une à mesure que je faisais les articles. Maintenant que j'en ai plus de 200, y a-t-il une solution dans les codes?

    Merci beaucoup!!

  24. Laurent

    10 novembre 2016

    Bonjour Edwige,
    oui, vous pouvez afficher la première image de votre article, en vous inspirant de ce post : http://comogene.com/wordpress/themes-tips-wordpress/afficher-automatiquement-galerie-images-attachees-article/
    et modifier votre loop avec quelque chose de ce genre :

    <?php if ( has_post_thumbnail() ) : // si il y a une image à la une ?>
        <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
            <?php the_post_thumbnail(); ?>
        </a>
    <?php else : // si il n'y a pas d'image à la une, prendre la première image de l'article
    
            // code pour afficher la première image de l’article (cf le lien ci-dessus)
    
    endif; ?>
    

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]...