質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

754閲覧

wordpressカスタム投稿タイプに紐付くカテゴリーアーカイブ

mitsuru_cbc

総合スコア31

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/12/06 07:29

編集2018/12/07 05:31

お世話になります。
wordpressのカスタム投稿タイプを使用した際の、
テンプレートについて質問があります。

以下、やりたいことです。

1.通常の「投稿」にいくつかカテゴリー(例:ctg1/ctg2)を作る。

2.CPT UIを使用し、カスタム投稿タイプ(例:ptypeA)を作る。

3.CPT UIの投稿タイプ設定画面の最下「利用するタクソノミー」で、
「カテゴリー (WP コア)」を選択

これで、ptypeAの投稿にもデフォルトカテゴリーctg1/ctg2を使用することが出来ると思うのですが、

■通常の投稿のカテゴリーctg1のカテゴリーアーカイブページ
・URL:www.hoge.jp/ctg1/

■投稿タイプptypeAの投稿のカテゴリーctg1のアーカイブページ
・URL:www.hoge.jp/ptypeA/ctg1/

としたいとき、上記2つのページで使用するテンプレートを変えるにはどうしたらいいでしょうか。

ちなみに、解決に関係あるかわかりませんが、
archive-ptypeA.php はptypeAの全体まとめページ(www.hoge.jp/ptypeA/)用に使用してしまっています。

例えると、
・野菜ラインナップ(www.hogevege.jp)
├トマト品種一覧(www.hogevege.jp/tomato/)
└ニンジン品種一覧(www.hogevege.jp/carrot/)
・野菜ジュースラインナップ(www.hogevege.jp/juice/)
├トマト味商品一覧(www.hogevege.jp/juice/tomato/)
└ニンジン味商品一覧(www.hogevege.jp/juice/carrot/)
で、2つの「トマト一覧」ページで使用するテンプレートを変えたいです。

上記実現出来る方法(テンプレートのファイル名の付け方?)
ご存じの方、何卒、ご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

同名カテゴリーで、複数テンプレートファイルの切り替えは、基本的にできません。

カテゴリーアーカイブを例にすると

  1. category-{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

の順で、最初に一致したテンプレートファイルが利用されます。


どうしても表示内容を変更したいのであれば、https://wpdocs.osdn.jp/カテゴリーテンプレート の「カテゴリーによって異なるテキスト」に記載されているように テンプレートファイルの中で、条件分岐して、表示内容を変える必要があります。

たとえば、質問の例に書かれている例を使って、トマトカテゴリーで考えると category-tomato.php の中で、

if( is_post_type_archive('juice') ) { get_template_part('tomato', 'juice'); } else { get_template_part('tomato', 'main'); }

のように条件分岐して、実際の内容を tomato-main.phptomato-juice.php に記載する感じになるでしょうか。

条件分岐タグですが、カスタム投稿タイプ is_post_type_archive() で判断できたら良いのですが、テストしていないので不明です。 (できなければ、URL で判断しないとダメかもしれません...)

参考:

投稿2018/12/07 06:21

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuru_cbc

2018/12/07 07:02 編集

ありがとうございます!! 上記参考に、実現することが出来ました! 下記、ご参考までに。 ・懸念されていたとおり、 is_post_type_archive() で取得出来なかったので、URLで判断することにしました。 ・僕のやりかたが悪いのかもですが、例えば上記例で 野菜ジュースラインナップ www.hogevege.jp/juice/ で、トマトジュースページへのリンクを取得したかったのですが、 get_category_link(cat_id) だと、 www.hogevege.jp/tomato/ が取得されてしまうので、 各ジュースへのリンクは各カテゴリーslugを使って記述することにしました。 上記調整しまして、おかげさまで先に進むことができます。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問