WordPressのカスタム投稿タイプで新着情報を作るとき、年別アーカイブが必要になりました。

今回は年別アーカイブのサイドメニューを表示する設定をメモしておきます。

まず、カスタム投稿タイプの設定に「Custom Post Type Permalinks」プラグインを使用していること前提です。

サイドメニューを表示させたい部分に、以下の設定をします。

<ul class="subMenu">
	<?php wp_get_archives(array('post_type' => 'news', 'type' => 'yearly')); ?>
</ul>

上記は、投稿タイプ名が「news」の場合です。

これだけです。

しかし、これだけだと、2014、2015など数字のみになり、「年」が表示されません。
「年」を表示させるには、functions.phpに以下の記述を追加します。

// カスタム投稿タイプの年別リストに「年」をつける設定
function add_nen_year_archives( $link_html ) {
    $regex = array ( 
        "/ title='([\d]{4})'/"  => " title='$1年'",
        "/ ([\d]{4}) /"         => " $1年 ",
        "/>([\d]{4})<\/a>/"        => ">$1年</a>"
    );
    $link_html = preg_replace( array_keys( $regex ), $regex, $link_html );
    return $link_html;
}
add_filter( 'get_archives_link', 'add_nen_year_archives' );

以下の記事を参考にさせて貰いました。ありがとうございます!
今回はほぼそのまま自分のメモ用に書いた記事になります。

参考記事
wordpress サイドバーにカスタム投稿の分類、月別アーカイブ、最新記事一覧を表示する方法 | WEBデザイナーのしおり
WordPressの年別アーカイブリストの表示に「年」を追加する | Simple Colors