我有一个页面,我想每月显示博客帖子。如果本月没有帖子,我想显示上个月的帖子。如下图所示。它显示了8月份的帖子,因为9月份没有帖子。
下面是我本月发布的代码:
<?php
$args = array(\'date_query\' => array(
\'year\' => date( \'Y\' ),
\'monthnum\' => date( \'m\' ),
),
\'posts_per_page\' => 10,
\'paged\' => $paged,
\'order\' => \'ASC\',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ): while($query->have_posts()): $query->the_post(); ?>
<h2>
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</h2>
<p>
<?php the_content();?>
</p>
<?php endwhile; else : ?>
<p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<?php endif; // Reset Post Data
wp_reset_postdata();?>
但是,如果当月没有帖子,我如何显示前一个月的帖子
最合适的回答,由SO网友:cjbj 整理而成
首先,获取当前月份和年份:
$month = int(current_time(\'m\'));
$year = int(current_time(\'Y\'));
接下来,获取本月的帖子:
$query = new WP_Query( \'year=\' . $year . \'&monthnum=\' . $month );
如果查询返回前一个月的空查询,并重复此操作,直到找到非空月份:
while (empty($query)) {
$month = $month-1;
if ($month == 0) { $month = 12; $year=$year-1;}
$query = new WP_Query( \'year=\' . $year . \'&monthnum=\' . $month );
}