La fonction
Celle-ci est à placer dans functions.php.
function my_random_posts() {
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 5,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
$string .= '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
$string .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
}
$string .= '</ul>';
/* Essayez d'enlever la fonction ci-dessous pour voir */
wp_reset_postdata();
} else {
$string .= 'Aucun article trouvé';
}
return $string;
}
Intégration
Dans un fichier .php
On appelle simplement la fonction à l’endroit où l’on veut voir apparaître nos articles aléatoires :
<?php echo my_random_posts(); ?>
Shortcode
On voudra peut-être placer ses articles aléatoires dans une sidebar par exemple… Le shortcode est alors tout indiqué.
Pour utiliser la fonction sous forme d’un shortcode, il suffit de rajouter ces deux lignes après la fonction :
function my_random_posts() {
// ...
}
add_shortcode('random_posts','my_random_posts');
add_filter('widget_text', 'do_shortcode');
Plus qu’à insérer le shortcode :
[random_posts]
Annexes
Source de l’image : www.creatinglifeasyougo.com/
Source de l’article (EN) : www.wpbeginner.com/wp-tutorials/how-to-display-random-posts-in-wordpress/
wp_reset_postdata dans le codex wordpress