it-swarm.com.de

Wie kann ich einen einzelnen Beitrag aus den letzten 3 auswählen?

Ich suche nach einem Zufallsprinzip, um einen einzelnen vorgestellten Beitrag aus meinen letzten 3 Beiträgen anzuzeigen. Ich habe es geschafft, es zum Laufen zu bringen, indem ich jeden beliebigen Beitrag ausgewählt habe, aber ich möchte nur die letzten 3 herausfiltern.

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

Wenn ich posts_per_page auf 3 ändere, erhalte ich natürlich 3 Divs mit vorgestellten Post-Previews. Ich möchte nur den einen Beitrag, der zufällig aus den letzten 3 ausgewählt wird. Eine Datumsabfrage funktioniert nicht, da die Beiträge nicht regelmäßig sind.

1
adamdanw

Hier ist mein Ansatz ...

Zuerst musst du 3 neueste Beiträge auswählen, dann musst du einen zufälligen auswählen ...

Es ist jedoch einfacher, ausgewählte Beiträge zu mischen, als nur einen auszuwählen. Auf diese Weise können Sie weiterhin die normale Schleife verwenden:

<?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;
?> 
5