Comment afficher les derniers articles d’une catégorie spécifique

Vous souhaitez afficher les derniers posts d’une catégorie spécifique ailleurs que dans une page catégorie ? Dans un Widget, sur une page distincte ? Par défaut WordPress n’offre pas de telle option. 2 solutions s’offrent à vous : un plugin permettant de créer des shortcodes que vous pouvez afficher sur vos pages ou dans des widgets, ou du code pour les puristes.

Si votre but est simplement d’afficher les derniers articles d’une catégorie dans une page, alors contentez-vous d’utiliser la page de la catégorie en question, elle est faite pour cela. Vous pouvez même ajouter une description aux pages catégories si vous en avez besoin.

Si vous souhaitez afficher des liens vers vos catégories, ou une catégorie en particulier, utilisez le Widget “Catégories” ou ajoutez les directement via vos menus de navigation.

Afficher les derniers posts d’une catégorie en dehors de la boucle

En revanche, si votre souhait est d’afficher les derniers articles d’une rubrique précise dans une page distincte ou dans la sidebar, alors il vous faudra bricoler un peu. En effet, le widget qui permet d’afficher tous les derniers articles, ne permet pas de filtrer ceux-ci, tout comme il n’existe pas de shortcode pour les afficher en dehors de la boucle.

Heureusement pour vous, chez WordPress Pour les Nuls, nous avons 2 solutions à vous proposer pour y arriver facilement.

Méthode 1. Afficher les articles récents d’une catégorie à l’aide d’un Widget

Cette méthode est la plus simple, idéale pour les utilisateurs de WordPress qui ne maîtrisent pas le code. Cependant, elle s’avère aussi la plus lourde en consommation de ressources.

Commencez par télécharger et installer le plugin “Recent Posts Widget Extended“. Si vous ne savez pas comment installer un plugin, suivez notre guide “installer un plugin wordpress étape par étape”.

Une fois le plugin activé, rendez-vous dans le menu “Apparence” > “Widgets”, et ajoutez le Widget “Recent Posts Extended” à la barre latérale de votre choix.

Une fois que vous avez glisser le Widget dans la colonne, on vous proposera diverses options, telles que “Limiter à la catégorie“, qui vous permettras donc de filtrer les derniers articles à une catégorie spécifique”. Mais vous pouvez bien évidemment, exploiter tous les autres filtres à votre guise.

Dans les différents filtres, vous pourrez par exemple filtrer les articles liés à une étiquette, choisir d’exclure l’article que l’on est occupés à consulter, d’ignorer les articles épinglés, etc…

Sauvegardez, et observez le résultat dans votre sidebar.

Méthode 2. Afficher les articles récents d’une catégorie à l’aide d’un Shortcode

Toujours avec le même plugin, vous avez également la possibilité d’afficher les derniers articles issus d’une rubrique définie à l’aide de Shortcode, ce qui vous permet de les afficher à peu près n’importe ou dans votre site/blog.

Pour cela, il vous suffit d’ajouter le shortcode suivant :

[ rpwe limit="10" excerpt="true" cat="5"]

Suite à petit bug d’affichage, remplacer “[” par une “[“

Dans le contenu d’une page ou d’un Widget. L’exemple ci-dessus affichera les 10 derniers posts de la catégorie “5”, et affichera le résumé de l’article en dessous du titre. Si vous ne savez pas comment trouver l’ID de la catégorie, consultez notre guide “comment trouver l’ID d’une catégorie dans WordPress“. Vous pouvez bien évidemment modifier ces valeurs selon votre besoin.

Méthode 3. Afficher les articles récents d’une catégorie à l’aide de code PHP.

Pour les puristes, il reste une 3ème méthode, ajouter du code selon vos besoins. J’insiste sur le “selon vos besoins”, puisqu’une fois n’est pas coutume, l’ajout de code est souvent bien moins gourmand en ressources, car on se contente d’ajouter uniquement ce dont on à besoin, sans surcharger le site avec de nombreuses options inutiles.

Ajoutez la fonction suivante à votre fichier functions.php : ( bien sur, vous pouvez la customiser à votre guise )

<?php 

// afficher les derniers articles d'une catégorie
// Utilisation : wppln_last_posts('ID DE LA CATEGORIE','NBRE DE POSTS A RETOURNER','AFFICHER LE RESUME');
function wppln_last_posts($cat_id,$nbr_post,$excerpt) { 
	$query = new WP_Query("cat=$cat_id&posts_per_page=$nbr_post");
	echo '<ul>';
	while($query -> have_posts()) : 
		$query->the_post();
		echo '<li><a href="'.get_the_permalink().'" rel="bookmark">'.get_the_title().'</a></li>';
		if($excerpt == 'true') :
			echo '<ul><li>'.get_the_excerpt().'</li></ul>';
		endif;
	endwhile;
	wp_reset_postdata();
	echo '</ul>';
}

?>

Ensuite, dans la ou vous souhaitez afficher les derniers articles, ajoutez simplement la fonction “wppln_last_post(); en paramétrant les 3 options suivantes :

$cat_id = ID de la catégorie à afficher. (chiffre)
$nbr_post = nombre de posts à retourner. (chiffre)
$excerpt = afficher ou non le résumé. (true or false)

Ce qui donne donc :

wppln_last_posts('5','10','true');

Pour afficher les 10 derniers posts de la catégorie “5” en affichant le résumé de chaque article.

Facebook
Twitter (X)
LinkedIn
WhatsApp
Reddit

Gregory

Agitateur de Stratégiesaddict à WordPress depuis 2003, fada de Google depuis 1998. J’accompagne au quotidien plusieurs entreprises et indépendants dans la gestion de leur stratégie digitale et l’optimisation de leurs sites WordPress.

22 Comments

  1. Ah oui, non, pardon, j’avais compris que vous donniez tout le code pour fabriquer un shortcode. Là, il s’agit du shortcode correspondant à l’extension.
    Bon, en fait, pour répondre à mon besoin, il faut que je transforme la solution 3 en shortcode.

      1. Mon besoin est d’afficher dans un article ou une page une liste d’articles d’une catégorie ou correspondant à une étiquette.
        Autrement dit, lancer une boucle wordpress dans un article. Avec des attributs qui me permettront, de spécifier la catégorie ou l’étiquette.
        Actuellement, j’utilise pour cela l’extension Shortcode Ultimate, mais j’aimerais m’en passer pour simplifier et alléger mon site.
        Je pense que ça ne doit pas être très compliqué… Je vais tenter la chose, ça me permettra de progresser un peu. 😉

        1. Dans ce cas, utilise ACF et tu lies la catégorie ou l’étiquette à la page en question. Ensuite tu fais une boucle pour lister les articles de la catégorie ou étiquette en question.

      1. Bonjour,
        Je viens de m’apercevoir d’une erreur que tu as mis et qui cause cette erreur. Car tu as mis en nom de fonction “wppln_last_posts” alors que tu appels la fonction “wppln_last_post” tu as oublié le s à “posts”

  2. Quelques erreurs dans le code php…

    wp_reset_postdata;
    C’est une fonction, il faut mettre les parenthèses : wp_reset_postdata();

    Et sauf erreur de ma part, les fonctions the_permalink(), the_title(), etc. font déjà une sortie formaté dans le html, donc pas possible de les concaténer dans un echo, pour cela il faudrait utiliser les versions get (get_the_permalink(), get_the_title(), etc.).

    1. Pfiu, bien vu !
      Cela m’arrive de coder en live dans les tutos, sans tester le code, et sans réfléchir 😀
      Merci pour toutes ces corrections, le code est à jour.

  3. Bonjour
    pouvez vous m’indiquer ou trouver le code d’une page dans laquelle je veux insérer votre fonction

    désolé pour cette question qui peux paraître bête, mais je me suis arrêté à la programmation à l’époque du turbo pascal, oui, je suis un dinosaure…:;

    D’avance, merci

  4. Bonjour,
    Malheureusement, le shortcode ne s’affiche pas dans votre article…et c’est juste ce dont j’ai besoin! Je n’arrive pas à modifier la fonction php en fonction d’appel shortcode…Merci!

    1. Bonjour Léa, votre commentaire était passé à la trappe, je ne l’avais pas vu !
      Cela s’ajoute comme indiqué dans le fichier functions.php de votre thème enfant

  5. Bonjour,
    Je cherche à organiser ma partie blog. Habituellement elle organise les articles de manière chronologique. Cependant, j’aimerai que ceux-ci apparaissent par catégorie? ( exemple : assurance (tous les articles qui traitent de l’assurance), immobilier, scolarité etc… des blocs par catégorie et non par date de parution, et à l’intérieur des blocs, les articles les plus récents de la catégorie. J’utilise Elementor, mais ne trouve rien sur le sujet
    Merci d’avance pour votre aide

    1. Bonjour Clem,

      Avec Elementor tu peux faire sans souci un bloc pour chaque catégories avec le widget post archive, et dans la requête, filtrer par catégories.

Laisser un commentaire

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

Sur le même sujet