えっとね、これはwordpressサイトを作っていて俺がハマったケース何だけど、カスタム投稿タイプを固定ページに一覧で表示しよう、なんて考えてない?
んで、カスタム投稿タイプのスラグ名と同じスラグ名の固定ページを作って、そこに↓なサイトからパクってきたコード張りつけて、カスタム投稿タイプの一覧を表示しよう、なんて考えてやがるだろ?
カスタム投稿タイプの一覧ページの作成
http://www.webdesignleaves.com/wp/wordpress/965/
えっとね、まず、wordpressについて知っておかなきゃいけない知識があります。
http://[サイト名]/[固定ページスラグ名]/
と打つと、[固定ページスラグ名]という名前が付いた固定ページが表示されるよね?
これはしってるはずだ。
だからpage-[固定ページスラグ名].phpというファイルを作成しているはず。
じつは、wordpressではこのURLにはもう一つ意味があるのですよ。
それは、[固定ページスラグ名]という同名のアーカイブが有った場合そっちを優先してを呼び出しに行く、というものなの。
そこで問題があって、
wordpressではカスタム投稿タイプというのは「アーカイブ」の一種なんです。
しってた?おれはしらんかたっよ!!
つまり、
http://[サイト名]/[カスタム投稿スラグ名]/
と打つと、カスタム投稿タイプが設定されていた場合、archive-[カスタム投稿スラグ名].phpファイルが呼び出されるのです。
(なければarchive.php→index.phpの順番)
ここでもう一つ、重要なポイントが。
いま[カスタム投稿スラグ名]=[固定ページスラグ名]としてしまった場合、
http://[サイト名]/[スラグ名]/
と打った場合、wordpressはアーカーブであるarchive-[カスタム投稿スラグ名].phpファイルを読みにいってしまうのですよ。
固定ページよりもアーカイブのほうが優先順位が高いの。
つまり、いくらpage-[固定ページスラグ名].phpというファイルを用意していてもまったく読まれない。表示されない。
試しに、固定ページのスラグ名をチョコっと変えてやってみ?
ちゃんとpage-[固定ページスラグ名].phpが表示されるから。
こういうケースだと[カスタム投稿スラグ名]=[固定ページスラグ名]にしてしまいがちだから注意しないとね。
page-***.php 読みに行かず archiveばっかり読みに行きやがって
往生しておりやした!
おかげさんで上手くいきやした。ありがとうござんす。