web-dev-qa-db-ja.com

親と子のカテゴリ/分類法用のさまざまなテンプレート

親と子のカテゴリや分類法に異なるテンプレートを作成するための最善の方法は何ですか。

例:私は地域という分類法を持っていますが、これを国別に分類したいのですが、国内の都市を分類したいのです。それで、私はイタリアと呼ばれる親の分類学用語を持ちます、そしてそれは何でも、子供の分類学用語、ローマ、ミラノ、ナポリなどです。国と市で異なるテンプレートを使用することは可能ですか?どうすればこれを達成できますか?前もって感謝します。

3
Cthulhu

3つのファイルを作成することをお勧めします

1)regiontemplate-country.php

2)regiontemplate-city.php

これら2つは、国と都市のテンプレートを含みます。

3)taxonomy-region.php

このファイルに、適切なテンプレートをロードするためのコードを追加します。

<?php
$term = get_term_by('slug', get_query_var('term'), 'region');
if((int)$term->parent)
    get_template_part('regiontemplate', 'city');
else
    get_template_part('regiontemplate', 'country');
5
Mridul Aggarwal

WordPressには特定のテンプレートファイルを特定の順序で探す テンプレート階層 があります。存在する場合、WordPressはそのテンプレートファイルを使用して出力をレンダリングします。

分類法の場合、具体的な階層は次のとおりです。

1. taxonomy-{taxonomy}-{slug}.php //e.g. taxonomy-region-milan.php
2. taxonomy-{taxonomy}.php //e.g. taxonomy-region.php
3. taxonomy.php
4. archive.php
5. index.php 

それで上記を考慮してあなたはあなたのregionに対して一つのテンプレートファイルを作成することができます。

taxonomy-region.php //e.g. http://www.example.com/region/

...各地域のスラッグ固有のテンプレートファイル

taxonomy-region-milan.php //e.g. http://www.example.com/region/milan/
taxonomy-region-roma.php //e.g. http://www.example.com/region/roma/
etc...

なにが起こるのか….

ユーザーがに移動した場合

http://www.example.com/region/milan/

WordPressは最初にtaxonomy-region-milan.phpを見つけようとします。見つかった場合は、このファイルをその分類学用語のテンプレートファイルとして返します。見つからなかった場合は、代替として次の論理的な選択taxonomy-region.phpに進みます。そうしなければあなたのテーマはとにかく機能しないので、index.phpに到達するまで上の階層リストをたどります。

今や全体的にこの概念は、あなたがイタリアや他の国の中のほんの少しの都市や地域で作業している場合に適しているかもしれません。しかし、あなたが複数の都市/地域/国で仕事をし始めた瞬間、あなたは常に異なるテンプレートファイルで同じコードを繰り返していることに気づき、それからより効率的なアプローチを利用する時が来ました。

それで、あなたへの私の質問は、あなたのOPで述べられるようにすべての都市/地域のためのテンプレートは同じであろうか?それとも、それぞれが違うのでしょうか?もしそうなら - いくらですか?あなたが何かを調整/編集/微調整し、その変更があなたのサイト全体に反映されるようにする必要があるなら、可能な限りあなたはあなたの生活を楽にする繰り返しコードを減らしたいと思うからです。

複数のファイルに対して手動でこれを実行するのは面倒であり、エラーが発生しやすくなります。

リソース: http://codex.wordpress.org/Template_Hierarchy

1
userabuser