我怎么才能从最近的3个帖子中挑选一个帖子呢?

时间:2018-07-13 作者:adamdanw

我想随机显示我最近3篇文章中的一篇特色文章。我已经成功地将其建立起来,并随机挑选任何帖子,但我只想将其筛选到最新的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... 
显然,如果我将posts\\u per\\u页面更改为3,那么我会得到3个包含特色帖子预览的div。我只想要从最后三篇文章中随机挑选的一篇文章。日期查询不起作用,因为帖子不定期。

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

这是我的方法。。。

首先你必须选择3篇最新的帖子,然后你必须随机挑选其中一篇。。。

但洗牌选定的帖子要比只挑选其中一个帖子更容易,这样你仍然可以使用普通循环:

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

结束