【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を使うだけで年別アーカイブリストを表示できますが、細かく調整したい方は本記事をご参考ください。
以上で解説を終わります。
目次