Votre blog WordPress a probablement des dizaines de bons anciens articles, mais les nouveaux visiteurs ne voient que vos articles les plus récents, tandis que tout le reste reste enfoui dans vos archives.
Afficher des articles aléatoires est un moyen simple de résoudre ce problème. Chaque chargement de page présente un contenu différent, ce qui donne une nouvelle exposition aux anciens articles et maintient les visiteurs plus longtemps sur votre site. Vous pouvez même ajouter un bouton « Article aléatoire » qui permet aux lecteurs de sauter vers un article surprise, dans le style classique de StumbleUpon.
Dans ce tutoriel, nous vous montrerons comment afficher des articles aléatoires dans WordPress, ainsi que comment rediriger les visiteurs vers un article aléatoire avec un seul lien.

Utilisez simplement les liens rapides ci-dessous pour accéder à la méthode que vous souhaitez utiliser :
Comment afficher des articles aléatoires dans WordPress
Vous cherchez un moyen amusant de faire en sorte que les visiteurs continuent à cliquer sur votre site ? Vous pouvez facilement ajouter une liste d'articles aléatoires directement dans votre barre latérale, vos pages ou à l'intérieur de vos articles de blog.
Bien que certains tutoriels puissent suggérer d'ajouter du code personnalisé au fichier functions.php de votre thème, nous vous recommandons d'utiliser WPCode, le plugin gratuit d'extraits de code pour WordPress.
WPCode est livré avec une validation intelligente des extraits de code pour empêcher les erreurs de code courantes de casser votre site. Il rend également vos personnalisations pérennes, ce qui signifie que vous pouvez mettre à jour ou passer à un thème différent sans craindre de perdre toutes les fonctions de code personnalisées.
Tout d'abord, vous devez installer et activer le plugin gratuit WPCode. Pour des instructions détaillées, veuillez consulter notre guide pour débutants sur comment installer un plugin WordPress.
Après l'activation du plugin, rendez-vous sur la page Extraits de code » + Ajouter un extrait depuis la barre latérale d'administration de WordPress.
Une fois que vous y êtes, cliquez sur le bouton « + Ajouter un extrait de code personnalisé » sous l'option « Ajouter votre code personnalisé (Nouvel extrait) ».

Ensuite, sélectionnez « Extrait PHP » comme type de code.
Vous serez ensuite dirigé vers la page « Créer un extrait personnalisé », où vous pourrez commencer par taper un nom pour l'extrait de code.
Ce titre est uniquement pour votre référence et n'apparaîtra nulle part sur votre site.

Ensuite, copiez et collez simplement le code suivant dans la zone « Aperçu du code » :
<?php
$number_of_posts = 5; // Change this to the number of random posts you want to display.
$title = 'You might also like:'; // This is the title that will be displayed above the list of posts.
$current_post_id = get_the_ID();
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => $number_of_posts,
'post__not_in' => array( $current_post_id ),
);
$random_posts = new WP_Query( $args );
if ( $random_posts->have_posts() ) {
echo '<h3>' . esc_html( $title ) . '</h3>';
echo '<ul>';
while ( $random_posts->have_posts() ) {
$random_posts->the_post();
echo '<li><a href="' . esc_url( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a></li>';
}
echo '</ul>';
}
wp_reset_postdata();
Cet extrait affiche 5 articles aléatoires partout où vous placez son shortcode, et il exclut automatiquement l'article que le visiteur est déjà en train de lire.
Pour afficher un nombre différent, modifiez la valeur de $number_of_posts en haut de l'extrait. La ligne $title contrôle l'en-tête « Vous aimerez peut-être aussi : » qui apparaît au-dessus de la liste, alors modifiez ce texte ou définissez-le sur '' si vous préférez ne pas avoir d'en-tête du tout.
Après cela, vous devrez enregistrer l'extrait afin de générer un shortcode unique, alors cliquez sur le bouton « Enregistrer l'extrait ».

Après cela, faites défiler jusqu'à la section « Insertion » et choisissez l'option « Shortcode ».
Vous verrez maintenant le shortcode que WPCode a généré automatiquement. Cliquez sur son bouton « Copier » car vous utiliserez ce shortcode à l'étape suivante.

Enfin, faites défiler vers le haut et basculez le commutateur « Inactif » sur « Actif ».
Après cela, cliquez simplement sur le bouton « Mettre à jour » pour enregistrer vos modifications.

Après avoir enregistré l'extrait de code, vous pouvez afficher des articles aléatoires sur votre site en utilisant le shortcode que nous avons copié précédemment.

Pour plus de détails sur la façon de procéder, consultez notre guide sur comment ajouter des shortcodes WordPress.
Si les mêmes articles aléatoires continuent de s'afficher au lieu de changer, c'est généralement votre cache de page qui sert une copie enregistrée de la page. Commencez par vider votre cache et recharger la page.
S'ils ne changent toujours pas, excluez cette page du cache complet de votre plugin de mise en cache.
Comment rediriger les utilisateurs vers un article aléatoire (avec un plugin)
Bien que l'affichage d'une liste d'articles aléatoires fonctionne très bien dans votre barre latérale ou à la fin d'un article, il demande toujours aux visiteurs de scanner les titres et d'en choisir un. Aux débuts du web, nous aimions beaucoup utiliser Stumbleupon, qui permettait de découvrir facilement de nouveaux contenus en un clic.
Vous pouvez ajouter une fonctionnalité similaire sur votre site Web où, au lieu d'afficher une liste, vous créez un bouton « Article aléatoire » ou un lien « Surprise-moi » qui emmène instantanément les visiteurs vers un article aléatoire sur votre site. C'est une façon amusante d'encourager l'exploration, et cela fonctionne particulièrement bien sur votre page 404 ou dans votre menu de navigation.
Nous recommandons d'utiliser le plugin gratuit Random Post Plugin. Il fonctionne en ajoutant un paramètre d'URL ?redirect_to=random à votre site.
Installez et activez simplement le plugin, puis ajoutez un lien à votre menu de navigation, widget de barre latérale, bouton ou n'importe où ailleurs sur votre site. Un visiteur pourra alors cliquer dessus pour accéder à un article aléatoire.
Pour créer votre propre lien, vous devrez remplacer www.example.com par votre propre nom de domaine.
Voici les variations que vous pouvez utiliser :
- www.example.com/?redirect_to=random&each_once=rewind. Garantit que les visiteurs ne verront pas le même article deux fois. Ce lien se réinitialise automatiquement une fois qu'ils ont vu tous les articles de votre site.
- www.example.com/?redirect_to=random&count=10. N'affiche que les articles aléatoires parmi vos 10 articles les plus récemment publiés.
- www.example.com/?redirect_to=random&after=1 month ago. N'affiche que les articles aléatoires publiés au cours du dernier mois.
- &cache=120. Ajoutez ceci à la toute fin de votre URL pour enregistrer temporairement (mettre en cache) le résultat pendant 120 secondes. Cela aide votre site WordPress à se charger plus rapidement.
Par exemple, vous pouvez créer un bouton qui affiche un article aléatoire, sélectionné parmi vos 20 articles les plus récents :

Si vous préférez un bouton « Article aléatoire » prêt à l'emploi, le plugin inclut également un shortcode pratique.
Vous pouvez facilement ajouter le shortcode [redirect_to_post_button] à n'importe quel article, page ou zone de widget. Si vous avez besoin d'aide, consultez notre guide pour débutants sur comment ajouter un shortcode dans WordPress.

Comment rediriger les utilisateurs vers un article aléatoire dans WordPress (avec du code)
Si vous préférez ne pas installer un autre plugin à usage unique, vous pouvez configurer la même redirection « Article aléatoire » avec un extrait de code à la place.
Cet extrait crée une toute nouvelle URL sur votre site Web, qui ressemblera à example.com/random.
Cela n'affectera aucune de vos pages existantes, ni les lecteurs qui parcourent vos articles. La redirection ne se produit que lorsque quelqu'un visite manuellement cette nouvelle adresse /random, par exemple lorsqu'il clique sur un bouton ou un lien de menu « Article aléatoire » que vous avez configuré.
Ainsi, chaque fois qu'un lecteur visite example.com/random, WordPress sélectionnera automatiquement l'un de vos articles publiés de manière totalement aléatoire et le redirigera directement vers celui-ci.
Pour assurer la sécurité de votre site, nous allons ajouter le code à l'aide du plugin WPCode que nous avons configuré précédemment. Cela garantit qu'un seul caractère mal saisi ne cassera pas votre site Web ou ne vous empêchera pas d'accéder à votre zone d'administration.
Vous pouvez simplement le coller comme nouvel extrait PHP dans WPCode, en suivant les mêmes étapes que nous avons vues précédemment :
<?php
function wpb_random_post_rewrite() {
add_rewrite_rule( '^random/?$', 'index.php?random_redirect=1', 'top' );
}
add_action( 'init', 'wpb_random_post_rewrite' );
function wpb_random_post_query_var( $vars ) {
$vars[] = 'random_redirect';
return $vars;
}
add_filter( 'query_vars', 'wpb_random_post_query_var' );
function wpb_do_random_post_redirect() {
if ( get_query_var( 'random_redirect' ) ) {
$random = get_posts( array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 1,
) );
if ( $random ) {
wp_redirect( get_permalink( $random[0]->ID ), 307 );
exit;
}
}
}
add_action( 'template_redirect', 'wpb_do_random_post_redirect' );
Vous avez peut-être remarqué que cet extrait utilise une redirection 307, qui indique au navigateur que la destination est temporaire.
C'est parce que les navigateurs Web mettent en cache les redirections permanentes 301 pour accélérer les temps de chargement. Par conséquent, le navigateur continuerait d'envoyer un visiteur vers le même article, rompant ainsi complètement la randomisation.
Une fois que vous avez enregistré et activé l'extrait, accédez simplement à Paramètres » Permaliens dans votre tableau de bord WordPress et cliquez sur le bouton « Enregistrer les modifications ».
Cette étape rapide est connue sous le nom de « vidage de vos permaliens ». Elle oblige WordPress à actualiser sa structure de liens afin qu'il puisse reconnaître instantanément votre nouvelle URL /random.
Si vous utilisez un plugin de mise en cache WordPress pour accélérer votre site, assurez-vous d'ajouter /random à sa liste d'URL exclues. Cela garantit que la redirection s'exécute à chaque fois au lieu de servir une page mise en cache à vos visiteurs.
Votre redirection aléatoire est maintenant prête à être utilisée. Vous pouvez pointer n'importe quel lien vers example.com/random, qu'il s'agisse d'un bouton, d'un élément de menu de navigation, d'un widget de barre latérale ou d'un lien texte dans un article.
N'oubliez pas de remplacer example.com par le nom de votre propre domaine.
Nous espérons que cet article vous a aidé à apprendre comment afficher des articles aléatoires dans WordPress. Vous voudrez peut-être aussi consulter notre guide pour débutants sur la façon de réorganiser facilement les articles dans WordPress et notre tutoriel sur la création d'un article privé dans WordPress.
Si vous avez aimé cet article, abonnez-vous à notre Chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.

Dayo Olobayo
J'ai essayé plusieurs méthodes pour afficher des publications aléatoires, mais aucune n'a aussi bien fonctionné que cette méthode de requête personnalisée. Ce tutoriel est facile à comprendre et j'adore la façon dont vous avez fourni des exemples et des extraits de code pour illustrer le processus. Votre expertise m'a fait gagner tellement de temps et m'a épargné beaucoup de frustration. Continuez à partager vos connaissances avec nous !
Jiří Vaněk
Si je comprends bien, le code est sans les images mises en avant des publications. Y a-t-il des options avec le code pour afficher également les publications avec des images mises en avant ?
Support WPBeginner
Vous pourriez vouloir jeter un œil aux dernières publications du blog dans l'éditeur de blocs pour cela.
Admin
Jiří Vaněk
Merci pour le conseil. Oui, cela me convient. J'utilise Elementor et occasionnellement Seed Prod. Comme je n'utilise jamais Gutenberg, cette option ne m'est jamais venue à l'esprit. Je ne savais tout simplement pas que Gutenberg avait un tel bloc. Merci pour l'astuce.
Chris Smith
Mes publications épinglées apparaissent toujours dans mes publications aléatoires. Y a-t-il un moyen d'exclure les publications épinglées de ce code ?
Support WPBeginner
Pour y parvenir, nous vous recommandons d'utiliser le plugin de la deuxième méthode plutôt que de modifier le code.
Admin
Michael
Existe-t-il un moyen simple de mettre en cache les résultats pendant une certaine période au lieu de les randomiser à chaque fois ? Peut-être comme rafraîchir une fois toutes les 24 heures pour réduire la charge sur les appels à la base de données à chaque fois ?
Support WPBeginner
Pour cette fonctionnalité, vous devriez vérifier auprès du support du plugin si elle est disponible.
Admin
Marvin Duru
S'il vous plaît, j'ai essayé d'ajouter le shortcode à un endroit spécifique de mon site web, pas à l'intérieur de la publication en PHP, mais la section de publication aléatoire ne s'est pas affichée, seulement mon texte « [wpb-random-posts] ».
Que dois-je faire ?
Support WPBeginner
Lorsque vous utilisez l'éditeur de blocs, vous devez vous assurer que vous l'ajoutez à l'aide d'un bloc de shortcode.
Admin
Zeynep
Merci, le code fonctionne très bien. J'ai changé la première page de mon site WordPress en index.html, que dois-je faire pour exécuter [wpb-random-posts] sur ma page html ? Mon anglais est un peu faible, j'espère que vous me comprenez.
Support WPBeginner
Vous auriez besoin que la page soit une page WordPress pour qu'un shortcode WordPress fonctionne.
Admin
Elle
Comment vous y prendriez-vous pour styliser cela ? Je suis confus quant à la façon dont je contrôlerais la conception de ceci, je n'ai jamais travaillé avec le style PHP.
Support WPBeginner
Cela dépendrait du style que vous souhaitez ajouter pour savoir ce qui doit être fait. Vous pouvez ajouter une classe dans le code HTML pour avoir quelque chose à cibler.
Admin
Maria Cristhiane Amorim
Bonjour ! Puis-je faire cela dans une liste ?
Support WPBeginner
Vous devriez clarifier ce que vous entendez par là
Admin
Rob Packenham
Merci pour cet article utile.
J'ai une question : les pages de mon site WordPress incluent une barre latérale avec un widget d'extraits de publication aléatoire.
Le problème est que Google indexe les pages et « voit » les extraits de publication aléatoires comme du contenu pour la page. Ainsi, dans la recherche Google, une page peut apparaître comme correspondant à un terme de recherche uniquement parce qu'un des extraits de publication aléatoires sur la page correspondait au terme (et non au contenu principal de la page).
Mais, lorsqu'un utilisateur clique sur le lien dans les résultats de recherche Google, il verra la page avec un ensemble différent d'extraits de publication aléatoires dans la barre latérale, et non l'extrait de publication avec le texte correspondant. Cela leur semblera donc une mauvaise recherche.
Idéalement, j'aimerais exclure les extraits de publication aléatoires de l'index Google, c'est-à-dire les masquer à Google, mais cela ne semble pas possible (?).
Si vous avez des suggestions, je vous en serais reconnaissant ! Merci.
Jun Enriquez
J'ai essayé ceci et cela a détruit mon site, comment puis-je réinitialiser cela ?
Erreur http 500
S'il vous plaît, aidez-moi
Merci
Jun
Yin
Merci mille fois pour le partage. J'utilisais un autre plugin pour les publications aléatoires qui ne fonctionne plus. Puis j'ai trouvé votre site et j'ai installé le plugin. Il fonctionne à merveille.
Lisa
Bonjour, et merci pour ce tutoriel utile !
Pouvez-vous me dire quel serait le morceau de code à ajouter pour afficher des articles aléatoires d'une catégorie spécifique ? Mon thème n'affiche pas de barre latérale, je ne peux donc pas utiliser le plugin et il affiche déjà des articles aléatoires sous chaque article, mais des articles de toutes les catégories y sont inclus et affichés. J'ai essayé de vérifier le code du thème et d'ajouter 'post_category' => 'nom-de-la-catégorie', mais cela ne fonctionne pas. Une idée ?
Raff
Salut ! Je voulais juste demander ce qu'il adviendrait si je voulais changer un article aléatoire chaque semaine ou à tout moment. Par exemple, j'affiche un ensemble d'articles aléatoires, il ne changera pas avant 7 jours ou à tout moment. Merci !
Abhimanyu Kashyap
Merci beaucoup, j'ai pu afficher des publications aléatoires. J'ai changé le nombre de publications à 1 pour afficher 1 publication aléatoire. Y a-t-il une meilleure façon de faire ?
Je voudrais également savoir comment utiliser une variable au lieu du type de publication et en saisir une là où je place le shortcode, par exemple – [wpb-random-posts(‘post’)].
Comment puis-je y parvenir ??
devender
merci de partager ce code, il est très utile……..
Nate
Définir les articles sur `orderby` => ‘rand’ est une demi-mesure. Bien sûr, l'article s'affiche ‘aléatoirement’, mais comme DI SEKITAR l'a mentionné ci-dessus, à quoi sert d'afficher un article aléatoire s'il s'agit toujours du même article aléatoire chaque fois que quelqu'un visite le site ?
Nate
Je voulais dire ‘orderby’… J'ai été corrigé par le correcteur orthographique
smehsan
Désolé, mais la chaîne ne fonctionnait pas et je l'ai juste rendue globale et maintenant ça marche bien.
global $string;
Marléne Rose Shaw
Merci pour ce super tutoriel. Y a-t-il un moyen d'obtenir le shortcode puis d'afficher les articles aléatoires sous le contenu d'une page au lieu de la barre latérale ??
Katherine
JAYKAY
Pour exclure l'article actuel, ajoutez
‘post__not_in’ => array(get_the_id())
à la requête.
Vos arguments seront donc maintenant :
$args = array( 'post_type' => 'post', 'orderby' => 'rand', 'posts_per_page' => 5, 'post__not_in' => array(get_the_id()), );
JAYKAY
Cela fonctionne bien avec ce morceau de code.
Merci KATHERINE
di sekitar
des informations vraiment cool, j'ai essayé d'utiliser le plugin que vous avez mentionné, mais j'ai une grosse question.
Comment faire en sorte que les articles aléatoires soient différents pour chaque visiteur ou appareil qui visite mon site ?
parce que j'essaie de visiter mon site en utilisant un autre ordinateur portable et un smartphone, mais la publication aléatoire de ces 2 appareils est la même.
JayKay
Bonjour,
Advanced Random Posts Widget est un très bon plugin, mais j'ai un problème.
Comment pourriez-vous exclure le message actuel/actif lorsque vous affichez un message aléatoire ?
Est-il possible de corriger cela ?
Le problème est le même avec le code de la méthode 2.
Harry Stoddart
Utilisez la variable "Offset" pour ignorer les X derniers posts.
Khalil Sillah
En tant que débutant, quelle liste de matériel me faudrait-il pour apprendre WordPress ?
Ahm Clex
Un PC, le WiFi et de la détermination. C'est tout ce dont vous avez besoin pour apprendre n'importe quoi de nos jours.
Gaurav Khurana
merci pour ça. j'y pensais toujours, puisque par défaut les derniers posts sont visibles sur la page d'accueil elle-même. Merci pour ça, j'utiliserai certainement ce plugin