カスタム投稿タイプでのカスタムタクソノミーの扱い
カスタム投稿タイプで記事一覧を出したい場合は「archive-$post_type(カスタム投稿タイプ識別子).php」で表示できる。
しかし、カスタム投稿タイプでカスタムタクソノミー(カテゴリ、タグ等)を使用してこれらの一覧を出そうとしたときに上記のファイルを作成しても表示されないので躓いた。
上記の症状を正確に言えば、タクソノミーの記事一覧は表示されるものの、テーマのarchive.phpが参照されて表示されてしまうと言った問題である。
結論から言えば、本当にWordPressに対してのごくごく初歩的な勘違いではあった。
・・・が、それを知らずにしてこの問題にくそみそコーダーの俺は小一時間悩んだ。
最初、「カスタムタクソノミーで指定したカスタムタクソノミーの識別子とスラッグを勘違いしているのでは?」と思い見直し。
どう見ても間違いない。
次に、「archiveのスペルが間違っているのでは?」と思い見直し。
いやいや、そんな間違いなんかねーよ!
じゃあ、「カスタム投稿タイプのhas_archiveは?」と見直し。
has_archive「’true’^^;;;;」
最後に、管理画面でパーマリンクを指定し直しても一向に治らない。
ということは、どう考えても、コードや設定的なミスではない。
試しに適当にvar_dumpなりわざと変なコード入れてエラー吐き出させようとするも、そもそも読み込まれてないのだから意味はない。
なぜだ???
WordPress Codexのテンプレート階層表を見て再考。
ん?
んんんっ!?
表には、taxonomy-$taxonomy.php ・-・ taxonomy.php ・-・ archive.phpの表記。
そして、ご丁寧にその一行上にarchive-$post_type.phpの表記あるやないか。
WPえもん「きみはじつにばかだねぇ」
はい!バカです!!
そもそもカスタムタクソノミーの記事一覧を表示させるためのテンプレート名が違う!!
ってかよくよく考えたらregister_post_typeとregister_taxonomyを別々で指定するようになっているので気づくべきだった。
いや、カスタム投稿タイプとカスタムタクソノミーについて別物であるとは理解したんだよ?してたんだ・・・たんだ・・・。
だが、テーマのarchive.phpの印象が強すぎて、勝手な俺の思い込みがあったんだ。
あたしってほんとばか・・・(古ネタ
はい。
カスタムタクソノミーの記事一覧は「taxonomy-$taxonomy(カスタムタクソノミー識別子).php」で表示するということ。
悩むべきところで悩むとこれほどやるせないものはない。