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プラグインを使ってぜひ導入してみてください。

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

目次

関連記事

プログラミング

埋め込み型のフォームメーラーで文字化けしてしまう場合の対処方法

2021.01.05
1503
WordPress

【簡単】wordpressのアーカイブでタイトルの文字数を制限して表示、3点リーダーを付ける方法

更新日:2022.07.15
548
WordPress プログラミング

【wordpress】子カテゴリページで親カテゴリの情報を取得する方法

2021.11.01
682
HTMLCSS プログラミング

【CSS】input要素のplaceholderの文字だけサイズを変更する方法

2022.01.10
1838