関数で切り分けるのがよいかと思います。行うのがよいかと思います。10ヶ月前KUCKLUさん、ありがとうございます。数日空いてしまいました。今回は、カテゴリテンプレートの表示分けをしたかったので、categry-a.phpcategry-b.phpcategry-c.phpcategry.phpを作ってa・b・cの表示分けは、現状できているところからのスタートです。上手に説明できず、すみません・・・aのカテゴリを選べばcategry-a.phpの表示になりますが、「a」の下にも子カテゴリがあり、「aほにゃらら」というaの子カテゴリを選ぶと、categry.phpの表示となります。「a」の子カテゴリを選んだ時もcategry-a.phpの表示にしたいのですが、可能なのか、根本的に方法を変えなければいけないのかがわかりません。a・b・cは、大きな改変が無い限り、永続的に変わりませんが、子カテゴリは運用の中で増えていき、事前に作れませんし、いくつになるかわからないので、categry-a01.phpと都度テンプレートを増やしたくありません。何か方法は、ありますでしょうか。さんが、行われている方法は、テンプレート階層(名前付けルールに基づいた、自動的なテンプレートの適用)を使ったテンプレートの分岐ですよね。この方法だと、スラッグやIDを使うために、おっしゃっているような「カテゴリグループ」みたいな指定はできないので、テンプレートが山になるのと、手動で作らなければなりませんのでa・b・cは、大きな改変が無い限り、永続的に変わりませんが、子カテゴリは運用の中で増えていき、事前に作れませんし、いくつになるかわからないので、categry-a01.phpと都度テンプレートを増やしたくありません。いう方法が実現できません。さんが説明されている通り、get_template_part()等の関数を使う事で、いわば手動でテンプレート階層的な動作を作り上げることが出来ます。is_category()での条件分岐を行う以上、新しい子カテゴリが発生するたびに、テンプレートの書き換えが必要になります。カテゴリグループ(?)を検出して、そういうもので条件分岐をするといいのではないかと思います。以下は、ちょっと思いつきのサンプルですが、テンプレートでの条件分岐にも使えると思いますので検討してみてください。以下の例は、フィルタで、テンプレートを強制的に他のものに変更しています。カテゴリID41とその子カテゴリは、category.phpの代わりに、index.phpが適用されます。{//これは、サンプルなので、indexテンプレートを呼び出しています。$template;}他にも、カスタムタクソノミなどを使って、テンプレートグループを指定してやるとか、他にも方法はありそうな感じです。似たような事を最近行ったので可能ですよ。categry.phpに親カテゴリがaの場合categry-a.phpを読み込むという分岐を書いてください。ご希望の仕様ですと下記が参考になると思います。masahi–roさん、ありがとうございます。KUCKLUさんの話が、よく理解できていなかったようです。get_template_part()を今まで使ったことがありませんでした。調べた結果、皆さんの言われていることが理解できました。functions.phpに記述できるのがスマートな方法と思いますが、現状、私にはハードルが高いため、将来的にfunctions.phpに書き写し、今回はmasahi–roさんの方法でやってみようと思います。現在、categry.phpに下記の記述をしてみました。{include(TEMPLATEPATH.’/category-others.php’);}?>4と9のカテゴリ以外、ページが表示できません。4か4の子孫カテゴリーの場合、category-blog.phpをインクルードしているつもりですが、初めての記述で、よく理解できていません。どの部分が違っていますでしょうか?度々の質問ですみません。使う必要があると思います。in_category()のコードを、is_category()に直さないといけないと思います。)それは、なんでか?include(TEMPLATEPATH.'/category-others.php');include(TEMPLATEPATHは、常に親テンプレートのパスを返します。これが、なんでよくないかというと、チャイルドテーマを作った場合にテンプレートが動作しなくなるので、ちょっとした不具合を、チャイルドテーマで試験的に修正するといった作業ができなくなるためです。楽ちんになるためです。した内容でごめんなさい。);}?>上記の形で、やっと出来ました・・・ただ、functions.phpに下記を追記しました。false;}?>↑この動きをしてくれるのが、post_is_in_descendant_category()と思っていましたが、なぜfunctions.phpに追記しなければいけないのかわかりません・・functions.phpに追記なしで、blogとblogの子孫カテゴリーに属するIF文はかけないのでしょうか?解決はいたしましたが、もやもやが消えません。閉め忘れておりました。KUCKLUさん、nobitaさん、Masahi–roさん、ありがとうございました。(全10件中)トピック「カテゴリー別のレイアウトを子カテゴリにも反映させたいのですが」には新たに返信することはできません。