Written by Kasumi

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

カスタム投稿タイプの記事で、月別・年別アーカイブページを表示したい。

デフォルトの投稿タイプと同じやり方で作成しても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プラグインを使ってぜひ導入してみてください。

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

目次

関連記事

WordPress

Jetpackの関連記事数を変更する方法【WordPress】

2022.05.23
835
WordPress

【WordPress】カスタム投稿ページでタクソノミーのスラッグ・名前を取得する方法

2023.02.11
4546
WordPress

【WordPress】記事のタイトルに表示される非公開テキストを非表示にする方法

2023.04.25
942
WordPress プログラミング

【Contact Form 7】Form data to kintoneでkintone側に二重送信されるのを防ぐ【確認画面が原因】

2022.03.17
1254