wp 查询,按 DSC 顺序显示每个月的一个随机帖子


wp query to display one random post from each month in DSC order

我正在尝试使此wp查询以某种方式从每个月返回一个帖子,并显示当前安装的所有月份。如果帖子是随机的,那就太棒了。因此,每次重新加载页面时帖子都不同。

看看我到目前为止想出了什么...

<?php $arhiveGrid = new WP_Query(array(
    'post_type'      => 'page'              
    'order'          => 'DESC',
    'orderby'        => 'date',
    'posts_per_page' => 99999
)); ?>
<?php if ($arhiveGrid->have_posts()) : while ($arhiveGrid->have_posts()) : $arhiveGrid->the_post();
    $retina  = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'thumb-retina' ); ?>
    <a class="arhive-grid" href="<?php bloginfo('url'); the_time('/Y/m/'); ?>" style="background-image:<?php echo $retina[0]; ?>;">
        <span><?php the_time('F Y') ?></span>
    </a>
<?php endwhile; unset($arhiveGrid); endif; ?>

显然,此查询将返回我安装的每个帖子。上面的代码是我将用来为我的存档页面(不是存档.php)构建存档网格的代码。

网格需要每个月的图像作为背景,以"月"和"年"作为文本叠加层,并且需要链接到正确的月份。

但是,只有当上面的查询可以调整为每月的随机帖子时,代码才会起作用。

感谢您的任何帮助或指示。

此查询将为您提供一个随机帖子。您可以更改"号码帖子"以获得任意数量的帖子

<?php
$args = array( 'numberposts' => 1, 'orderby' => 'rand' );
$rand_posts = get_posts( $args );
?>

编辑:如果您想在某个时间范围内从 with 获取随机帖子,则必须使用自定义查询。

$wpdb->query("SELECT * FROM $wpdb->posts where post_data >= '2012-03-01' AND post_data < '2012-03-31' ORDER BY RAND() limit 1 ");

此查询将为您提供 2012 年 3 月发布的随机帖子。

现在,您必须在循环中使用此查询来获取所需的每个月的随机帖子。