WordPressで過去1年分の記事を取得したい場合、テンプレートで以下のコードを描くと取得できます。
<?php
$args = array(
'post_type' => 'custom_post_type', // ここは取得したい投稿タイプを指定します
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC',
'date_query' => array(
array(
'before' => 'now',
'after' => '1 year ago',
'inclusive' => true, // その日を含めるか真偽値で設定します
)
)
);
$my_query = new WP_Query( $args );
if ( $my_query->have_posts() ) :
while ( $my_query->have_posts() ) : $my_query->the_post; ?>
<!-- ここのコードはお好みで -->
<article>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
</article>
<?php
endwhile;
endif;
wp_reset_postdata();
ポイントはWP_Queryの引数内のdate_queryです。
date_query内のbeforeは戻る前の基準となる日付です。
コードではnowという文字列を記入することで現在を基準としています。
afterの値は過去のある時点をさします。
コードでは「1 year ago」という文字列を記入しています。1年前の今日を指定しています
これで直近1年分の投稿を取得することができました。