問題
特定の期間の記事一覧を出力するには?
解決策
記事出力の際にパラメータ「date_query」で特定の期間の開始の年月と終了の年月を設定する。
テンプレートファイル「archive-○○.php」の構築でよく使用する、特定の期間の記事一覧を出力
WordPressで特定の期間の記事一覧を出力する方法をよく忘れてしまうので、ここに残しておこうと思います。
特定の期間の記事一覧を出力する記述
特定の期間の記事一覧を出力する記述は以下となります。
$args1=array(
'posts_per_page' => -1,
'post_type' => $post_type,
'paged' => $paged,
'date_query' => array(
array(
'after' => array(
'year' => 年(西暦4桁),
'month' => 月(1~12),
'day' => 日(1~31),
),
'before' => array(
'year' => 年(西暦4桁),
'month' => 月(1~12),
'day' => 日(1~31),
),
'inclusive' => true,
),
)
);
記述例
実際に使用する記述例は以下になります。
<?php // 記事ループ スタート
if(is_date()):
$args1=array(
'posts_per_page' => -1,
'post_type' => $post_type,
'date_query' => array(
array(
'after' => array(
'year' => $start_year,
'month' => $start_month,
'day' => $start_day,
),
'before' => array(
'year' => $end_year,
'month' => $end_month,
'day' => $end_day,
),
'inclusive' => true,
),
)
);
else:
$args1=array(
'posts_per_page' => -1,
'post_type' => $post_type
);
endif;
$my_query = new WP_Query( $args1 );
if($my_query->have_posts()):
while ( $my_query->have_posts() ) : $my_query->the_post();
?>
...(ループ内処理)
<?php
endwhile;
// 記事ループ 修了
wp_reset_postdata();
endif;
?>
参照
【関数リファレンス/WP Query – WordPress Codex 日本語版】
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query
コメント