カスタム投稿タイプで月別・年別アーカイブページが表示されない場合の対処方法

カスタム投稿タイプの記事で、月別・年別アーカイブページを表示したい。
デフォルトの投稿タイプと同じやり方で作成しても404でエラーになる。
このような悩みを解決致します。
本記事ではプラグインを使い、カスタム投稿タイプで年別・月別アーカイブを表示する方法について解説します。
Custom Post Type Permalinksプラグインを入れよう

wordpressはカスタム投稿タイプに関して、年別・月別アーカイブをデフォルトで用意していなく、サポートしてないみたいです。
Custom Post Type Permalinksプラグインを入れる事で、カスタム投稿タイプでも年別・月別アーカイブを表示してくれます。
管理画面のプラグインからCustom Post Type Permalinksをインストール・有効化しましょう。
月別・年別アーカイブ用のテンプレートファイルを作成
<!-- タイトル -->
<h1><?php if (is_year()){echo get_the_date('Y年');} ?>お知らせ一覧</h1>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<!-- 記事一覧の内容 -->
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
次にカスタム投稿用のアーカイブテンプレートファイルを作成します。
カスタム投稿用のアーカイブはarchive-カスタム投稿名.phpで作成します。
後は作成したテンプレートファイルに記事一覧を出すループを記述すればOK。
月別・年別以外にも使うテンプレートになるので、月別・年別ページではタイトルを○○年○○月にするなど条件分岐してみたいと思います。
<?php if (is_year()){echo get_the_date('Y年');} ?>
年別の条件分岐にはis_year()関数を使い、年数を出力するにはget_the_date(‘Y’)関数を使います。
<?php if (is_month()){echo get_the_date('m月');} ?>
月別の条件分岐にはis_month()関数を使い、月数を出力するにはget_the_date(‘m’)関数を使います。
以上で完成です。
まとめ
デフォルト投稿タイプでは月別・年別アーカイブにdate.phpを使いますが、カスタム投稿では使えないので、四苦八苦してました。
本記事を参考に、Custom Post Type Permalinksプラグインを使ってぜひ導入してみてください。
以上で解説を終わります。