このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています

WordPressで直近1年分の記事を取得する方法

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年分の投稿を取得することができました。