トランスビット
トランスビットの開発ノート Webサイト制作に役立つTipsやトラブルシューティングなどの備忘録

カスタム投稿タイプの月別・年別アーカイブが404エラー

先日、Wordpress&各種プラグインをバージョンアップした時、それまで表示されていた年別アーカイブが表示されず、404エラーになりました。

他のページは問題なく表示されており、パーマリンクがおかしくなったんだろうと推測。そこで、よく知られている対処法、パーマリンク設定の更新をしたものの問題解決せず困ってしまいました。

ちなみにカスタム投稿タイプはCustom Post Type UI を、パーマリンクはCustom Post Type Permalinksを使っている状態です。

で、いろいろ調べて参考になったのが下記2サイトです。

WP カスタムポスト アーカイブ のリンクが効かない!? [Custom Post Type Permalinks]のバグ?

アップデートを行ったら月別、年別アーカイブのURLが変わってしまいました #74

要するに、

  1. パーマリンク設定に[/%post_id%/]を利用している場合、年月日のアーカイブ用パーマリンクには[/date/]が挿入されることになっている。
  2. Custom Post Type Permalinksのバグ?かエラーで、wp_get_archives()で出力されるリンクに[/date/]が入らなくなった。

ということのようです。あー、確かに[/%post_id%/]いっつも使ってますわー。

ちなみに、

[ターム] https://ドメイン/カスタム投稿タイプ名/ターム名/
[記事] https://ドメイン/カスタム投稿タイプ名/ターム名/記事ID/
[月別アーカイブ] https://ドメイン/カスタム投稿タイプ名/date/年/月/

といった感じのパーマリンクです。

つむぐいとさんのサイトを参考に、Custom Post Type Permalinksを削除&再インストールも試してみたのですが、うまくいかなかったのでwp_get_archives()で出力されるものを加工することで済ませました。方法は別記事、wp_get_archives()で出力されるURLを一部変更するにまとめてあります。

Filed under: