【WordPress】カスタマイズ可能な年別アーカイブリストを表示する方法

年別アーカイブリストを表示する方法を知りたい。

wp_get_archivesを使わず、html部分を自由にカスタマイズ可能な形式で表示したい。

本記事ではこのような悩みを解決。

実装方法について解説します。

wp_Queryを使おう

  <?php
	$year = NULL; // 年の初期化
	$args = array(
		'post_type' => 'post', //投稿タイプを指定
		'orderby' => 'date', // 日付順で表示
    'order' => 'DESC',
		'posts_per_page' => -1 // すべての投稿を表示
	);
	$the_query = new WP_Query($args);
	?>
	<ul>
		<?php if ($the_query->have_posts()) : ?>
			<?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
				<?php if ($year != get_the_date('Y')) : // 同じ年でなければ表示 
					$year = get_the_date('Y'); // 年の取得
				?>
					<!-- 年別アーカイブリスト -->
					<li><a href="<?= home_url(); ?>/<?= $year; ?>/"><?= $year; ?>年</a></li>
				<?php endif; ?>
			<?php endwhile; ?>
		<?php else : ?>
		<?php endif; ?>
		<?php wp_reset_query(); ?>
	</ul>

wp_get_archivesを使わず、年別アーカイブリストを表示するサンプルコードです。

wp_Queryを使う事でhtml部分を細かくカスタマイズ可能な年別アーカイブリストを表示できます。

コードの詳細は以下の通りです。

wp_Queryを使って、記事データを取得。

wp_Queryループ内で$year = get_the_date(‘Y’);を変数定義し、記事の年データを取得

if ($year != get_the_date(‘Y’){}を条件式とし、同じ年以外は年別アーカイブリストを追加する処理を加えればOKです。

実装環境に合わせ、年別アーカイブへのリンク・年をhtmlを使ってカスタマイズ表示します。

$year変数を使えば年を表示できます。

以上で実装完了です。

まとめ

wp_get_archivesを使うだけで年別アーカイブリストを表示できますが、細かく調整したい方は本記事をご参考ください。

以上で解説を終わります。

関連記事

WordPress

[html css]ユーチューブをレスポンシブに埋め込む方法

更新日:2019.11.28
104
WordPress

【WordPress】記事詳細ページのURL末尾スラッシュを削除する方法

2022.05.29
350
WordPress

【All in One SEO】 一部のページでは出力しないようにする方法

2022.06.15
139
WordPress プログラミング

【ACFプラグイン】Advanced Custom Fieldsの使い方・出力方法を紹介

2022.03.20
116