WordPress 月や年別アーカイブ一覧の表示方法

WordPress で月別や年別アーカイブ一覧の表示方法を紹介します。
例えば、ブログのサイドバーに月別アーカイブ一覧を表示したいときに便利な方法です。

  1. liタグでアーカイブ一覧を表示する方法
    1. liタグで月別アーカイブ一覧の表示方法
    2. liタグで年別アーカイブ一覧の表示方法
  2. セレクトボックスでアーカイブ一覧を表示する方法
    1. 数字のお尻に年表記を付けたい

liタグでアーカイブ一覧を表示する方法

アーカイブ一覧を表示するには wp_get_archives() を使用します。
例えば、カスタム投稿タイプのスラッグが blog で、liタグで月別アーカイブ一覧を表示したいときは、次のコードをテンプレートファイルに追加します。

liタグで月別アーカイブ一覧の表示方法

月別にする場合は type の指定を monthly にします。

<ul class="monthly-list">
<?php wp_get_archives( 'post_type=post&type=monthly&show_post_count=1' ); ?>
</ul>

表示される月別アーカイブ一覧の HTML は次のように表示されます。

<ul class="monthly-list">
<li><a href="example.com/wp/blog/date/2018/03?post_type=post">2018年3月</a>&nbsp;(1)</li>
<li><a href="example.com/wp/blog/date/2018/02?post_type=post">2018年2月</a>&nbsp;(1)</li>
<li><a href="example.com/wp/blog/date/2018/01?post_type=post">2018年1月</a>&nbsp;(1)</li>
</ul>

記事のカウントを必要としない場合は show_post_count の値を 0 と指定してください。
wp_get_archives はループの外でも使用できます。

liタグで年別アーカイブ一覧の表示方法

年別にする場合は type の指定を yearly に変更します。

<ul class="monthly-list">
<?php wp_get_archives( 'post_type=post&type=yearly&show_post_count=1' ); ?>
</ul>

セレクトボックスでアーカイブ一覧を表示する方法

セレクトボックスでアーカイブ一覧を表示する場合は、format に option を指定します。

<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option disabled selected value>アーカイブ</option>
<?php wp_get_archives( 'type=monthly&format=option&post_type=blog' ); ?>
</select>

数字のお尻に年表記を付けたい

年が表示される場合に「2022」と表示される場合があります。数字の後ろに「年」を付けたい場合は after=年 を指定します。

<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option disabled selected value>アーカイブ</option>
<?php wp_get_archives( 'type=monthly&format=option&post_type=blog&after=年' ); ?>
</select>

まとめ

WordPress で月別アーカイブ一覧の表示方法を紹介しました。
カスタム投稿タイプで月別の記事一覧を表示したい場合はWordPress カスタム投稿タイプの月別アーカイブ一覧を表示する方法をご覧ください。