我想随机显示我最近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。我只想要从最后三篇文章中随机挑选的一篇文章。日期查询不起作用,因为帖子不定期。
最合适的回答,由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;
?>