0

我试图让这个 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; ?>


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

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

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

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

4

1 回答 1

-1

这个查询会给你一个随机的帖子。您可以更改“numberposts”以获取任意数量的帖子

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

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

$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 月发布的随机帖子。

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

于 2012-04-17T06:22:12.850 回答