Je souhaite afficher une publication sélectionnée parmi mes 3 dernières publications au hasard. Je suis parvenu à le mettre en place, en sélectionnant n'importe quel message au hasard, mais je souhaite le filtrer uniquement au dernier 3.
<?php
$args = array(
'post_type' => 'post',
'orderby' => 'Rand',
'posts_per_page' => 1,
'post_status' => 'publish'
);
$Rand_query = new WP_Query( $args );
if ( $Rand_query->have_posts() ) :
while ( $Rand_query->have_posts() ) : $Rand_query->the_post();
?>
// DIV FOR SINGLE FEATURED POST HERE // etc...
De toute évidence, si je modifie posts_per_page en 3, j’obtiens 3 divs contenant les aperçus des publications en vedette. Je veux seulement le post choisi au hasard parmi les 3 derniers. Une requête de date ne fonctionnera pas car les posts ne sont pas réguliers.
Voici mon approche ...
Vous devez d'abord sélectionner les 3 derniers messages, puis choisir au hasard l'un d'entre eux ...
Mais il est plus facile de mélanger les publications sélectionnées que de n'en choisir qu'une seule. Ainsi, vous pouvez toujours utiliser la boucle normale:
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 3,
'post_status' => 'publish'
);
$Rand_query = new WP_Query( $args );
shuffle( $Rand_query->posts );
if ( $Rand_query->have_posts() ) :
while ( $Rand_query->have_posts() ) : $Rand_query->the_post();
?>
// HERE GOES THE DIV WITH POST
<?php
break; // we want only one post to be shown, so we break the loop
endwhile;
endif;
?>