問題 × 解決策

特定の年の記事一覧を出力する

問題

特定の年の記事一覧を出力するには?

解決策

記事出力の際にパラメータ「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

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

4 × four =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧