問題
特定の年の記事一覧を出力するには?
解決策
記事出力の際にパラメータ「date_query」でその年の1月1日~12月31日を設定する。
テンプレートファイル「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,
'day' => 1,
),
'before' => array(
'year' => 年(西暦4桁),
'month' => 12,
'day' => 31,
),
'inclusive' => true,
),
)
);
記述例
実際に使用する記述例は以下になります。
<?php // 記事ループ スタート
if(is_date()):
$args1=array(
'posts_per_page' => -1,
'post_type' => $post_type,
'date_query' => array(
array(
'after' => array(
'year' => $year,
'month' => 1,
'day' => 1,
),
'before' => array(
'year' => $year,
'month' => 12,
'day' => 31,
),
'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
コメント