この記事は、副業でのエラー関連で困った内容と解決した時の方法を、忘れないように自分のために、記載しました。
プログラミング歴は2年弱の若輩者のため、根本解決となったかは不明ですが、人様の知識を莫大に利用して解決しました。
エラー内容は、ずばり「カスタム投稿のカテゴリーの一覧の2ページ目が404エラーが出てしまう」です。
カスタム投稿のカテゴリー2ページ目のエラー
エラー内容は、オリジナルカスタム投稿でカテゴリーも追加し、”taxonomy_●●.php”でカテゴリーでの一覧ページを作ってあったのですが、いざ2ページ目をめくってみると
「404:このページはありません」とエラーがでました。
カスタム投稿での一覧はOKで、なぜかカテゴリーのみアウト。。。
なんでだよ!!!と思いつつ、一つずつ要因をつぶしていきました。
要因予想1:表示件数がおかしいのでは・・・。
まずは、「カスタム投稿 一覧ページ エラー」で調べてみると、Wordpressの設定の表示設定が「archive-●●.php」や「taxonomy-●●.php」の表示と違うと2ページ目がエラーが出るとの記載がありました。
とりあえず、まずは合わせてみようと表示を変更してみました・・・
が、全くエラーが解消できませんでした。
ということはコレは要因ではないのかと思い次の要因を洗いだしました。
参考URL:http://bouquet344olive.com/2021/07/20/custom/
要因予想2:一覧ページのリンクがおかしい
次の要因として挙がってきたのはURLの表示によるエラーでした。
まずはエラーの出る分類を分けると
ページの種類 | エラーが出なかったURL |
カスタム投稿の一覧:最初のページ | https://sizuya007.cloud/カスタム名/ |
カスタム投稿の一覧:次ページ以降 | https://sizuya007.cloud/カスタム名/page/2/ |
カスタム投稿のカテゴリー一覧:最初のページ | https://sizuya007.cloud/カスタム名/カテゴリー名/ |
カスタム投稿のカテゴリー記事 | https://sizuya007.cloud/カスタム名/カテゴリー名/Post番号 |
ページの種類 | エラーが出たURL |
カスタム投稿のカテゴリー一覧:次ページ以降 | https://sizuya007.cloud/カスタム名/カテゴリー名/page/2/ |
上記をもとに調べた結果、予想するに記事のURLとカスタム投稿のカテゴリー一覧が途中まで同じなのが要因かと・・・。
多分コードとしては、
「https://sizuya007.cloud/カスタム名/カテゴリー名/」は記事なんだから、次の表示がpage/2/なんておかしいやろ!!そんな記事ないわ!!エラーやエラー!!
みたいな感じなのだろうと思われます。
参考にしたサイト:https://osha-kimi.com/memo/custompost-pagination/
https://ramia.me/custom-post-type2/
じゃあ、カテゴリー名が一覧ページの時に代わるようにしたら良いのか~と思い、function.phpのコードを探しましたが・・・。もともと自分が書いたコードでないこともあり、どこで変更すればよいか全くわからず・・・。
私の場合は、カテゴリー名を一覧で変更するのは諦めるしかありませんでした・・・(´;ω;`)
最終的にたどり着いた結論:リライトルールエラー
ネット検索で、藁をもつかむ勢いで下記のURL内容にたどり着きました。
「Custom Post Type Permalinksでタームアーカイブのページ送りが404」という一つの質問内容から自体は急展開を迎えました。(URL:https://ja.wordpress.org/support/topic/custom-post-type-permalinks%E3%81%A7%E3%82%BF%E3%83%BC%E3%83%A0%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E9%80%81%E3%82%8A%E3%81%8C404-2/)
こちらの記事は、プラグインにてカスタム投稿をしましたが、私と同じくページ送りができず困っていますとの内容でした。
この記事では、エラーの要因の断定までの考察も詳細も記載されており、とても分かりやすかったです。私もパーマリンクでのエラーかと思っていたため、修正をしていましたが、「パーマリンク構造を変更した際のリライトルール周りのエラー」と言われるまでピンときてませんでした。
とりあえず、質問の返答の記載を確認し、「add_rewrite_rule(‘●●(カスタム投稿名)/([^/]+)/page/([0-9]+)/?$’, ‘index.php?●●(カテゴリー部分)=$matches[1]&paged=$matches[2]’, ‘top’); //追加部分」と記載してみたところ、エラー解消!!
あまりのことに、跳ね上がって喜びました。
最後に
だいぶ悩みましたが、解決方法が見つかり良かったです。エラーは悩んでいるときは、かなり悶々としますが、解決した時の爽快感はやはり違うなぁ・・・と思います。
あとは感じたことは、まだまだ知識と技術が乏しい部分が多いので、これからも勉強の継続が必要と思いました。