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

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

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

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

Ads

関連記事

プログラミング

www.有りのドメインを無しのドメインにリダイレクトする方法

更新日:2020.06.12
57
WordPress

トップページの記事一覧で2ページ目以降のタイトルタグにページ番号を入れる方法

更新日:2019.11.28
87
WordPress プログラミング

【激選】WordPressでよく使うページ種別の条件分岐テンプレートタグをご紹介【コピペ用】

2022.04.02
25
HTMLCSS プログラミング

【CSS】select(セレクト)要素の矢印を消して画像にする方法

2022.01.09
147