MENTAやTimeTicketでZoomオンライン指導・メンタリングを行っています。
WordPressやHTMLサイトのトラブル、SEO対策のご相談、HTML・CSS・WordPressなどのレクチャーなどが可能です。


【しん 様】WordPressのカスタム投稿 シングルページの条件分岐について

WordPressでカスタム投稿、カスタム分類(タクソノミー)を作った時のテンプレート分岐条件についてご相談頂きました。

カスタム投稿 シングルページの分岐について

はじめまして。
Custom Post Type UIのプラグインをつかって、投稿タイプを作りました。
その中で、二つタクソノミーを作ったのですが、このタクソノミーのシングルページのデザインを下記のように作りました。
single-タクソノミーA.php
single-タクソノミーB.php
いざページを表示すると、どちらもsingle-タクソノミーA.phpのデータの方が表示されてしまいます。
なにか条件分岐など書かないとダメなのでしょうか?
初心者な質問ですみません。
宜しくお願いします

テンプレート階層について

>しん さま
ご相談ありがとうございます。

多くの人が悩まれる部分だと思います。(いまだにこんがらがる時も・・・)
初心者ということですが、カスタム投稿・タクソノミーに挑戦されているとはすごいですね!

さて、PHPテンプレートによる分岐方法については、全て「テンプレート階層」に書いてあります。
WordPress コーデックス テンプレート階層

個別のページをテンプレートで制御する方法は
1.single-{post_type}.php
2.page-{slug / id}.php
しか無いと思います。

そして、page-ID.phpなど、固定ページはページ毎にテンプレートを制御可能ですが、
投稿やカスタム投稿は
single.php
or
single-{post_type}.php
のように投稿タイプ毎に共通のテンプレートしか作る事ができません。

single-タクソノミー.php という考え方が成り立たないはずです。(そういうテンプレ自体が作れない)
>どちらもsingle-タクソノミーA.phpのデータの方が表示
というのはよくわかりませんが、例えばpost_typeと同じ名前のtaxonomyならそのようになるのかもしれませんね・・・

タクソノミーを制御するテンプレートは、
1.archive-{post_type}.php
2.taxonomy-{taxonomy}.php
3.taxonomy-{taxonomy}-{term}.php
などがありますが、これらはいずれも一覧ページのテンプレートです。

「タクソノミーのシングルページのデザイン」とありますが、タクソノミーABではなく投稿タイプABに分けるという方法ではダメなのでしょうか?
single-A.php(Aの投稿タイプのシングルページ共通のテンプレート)
single-B.php(Bの投稿タイプのシングルページ共通のテンプレート)
という形です。これが一番スムーズかもしれません。

他、single-{post_type}.php の中でタクソノミーによる分類を行うことは可能かと思いますが、single.phpの中でカテゴリーやタグで条件分岐するのとはまた違って難しいため、初心者向けとは言えないかもしれません・・・
(おそらく is_object_in_term を使います)

テンプレート階層と、条件分岐タグは種類もあって難しいです。
一覧ページのテンプレートで使うべき条件分岐タグ
個別ページのテンプレートで使うべき条件分岐タグ
があるためです。

前述のようにタクソノミーABではなく、投稿タイプABに分けるなども視野に入れてみて下さい。
参考にして頂ければ幸いです。

おすすめコンテンツ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA