WordPressでのサイト構築を行っている際にURL(パーマリンク)も指定したサイトマップに合うように作っていくわけですが、たまにこういう時ありませんか?
- カテゴリー一覧のページが表示されるはずなのに出てこない
- 他のカテゴリーは問題ないんだけど、このカテゴリーだけおかしい
そんな時の解決方法をご紹介します。
ではいってみましょう!
コトの発端は?
そもそもの経緯としてですが、カテゴリーページからcategoryの文字列を取ろうと思ったのが始まります。
コレ自体は簡単で、パーマリンク設定画面にある「カテゴリーベース」に「 . (ドット)」を入れるだけでOK。

カスタム構造で「 /%category%/%post_id%/ 」になっていることが大前提です
そうするとカテゴリーページからcategoryの文字列はなくなるのですがここで問題発生!
症状
冒頭で書いたように、他のカテゴリーページは問題ないのに、あるカテゴリーだけ表示がおかしいんです。
WordPressでサイト構築をしている時は「なんのテンプレートファイルが使われているか」すぐに分かるようにShow Current Templateというプラグインを入れています。
これを見ているとcategory.phpが使われるはずなのにsigle.phpになっている事が判明。
テンプレート階層で確認してもこの使われ方は絶対におかしいという事がわかります。

原因
じゃあなんぞや?と色々と見ていくも最初はわからず…
single.phpが使われているのには何か理由があるはず…
singleって事は⋯記事ページになっている?
なぜ?
というところから思いつきました。
そうなんです!
メディアページになっていたのです!
WordPressではメディアに上げた画像の一つ一つにもページが生成されるようになっています。
ページがあるって事はURL(パーマリンク)があるってこと…
つまり…
URL(パーマリンク)が重複していたからこそ起きた事故でした。
※画像はすでにゴミ箱に入っていたので最初は気が付かず…
解決方法
ここまでくればあとは簡単です。
画像のファイル名を変えてあげればOK!
もしくは、画像自体を完全に消去してしまえばOK!
これで正常に表示されるようになりました。
まとめ
狙っているページが表示されない。
本来使われるはずのないテンプレートファイルが使われている。
という時は気持ちを落ち着かせて俯瞰で考えてみると発見があります。
まぁ今回の場合は、画像をメディアに登録する時に「 img-○○ 」みたいに画像だってすぐに分かるファイル名にしておけばこんな事故は起こらなかったんですが…
という事でWordPressでのサイト構築をする時は画像のファイル名にも気をつけましょう!というお話でした。
ではまた!
当記事で紹介、及び記載している内容は個人的考えに基づいております。
責任は負いかねますので、お試しの際は必ずバックアップを取った上で自己責任のもと実行してください。