top

カテゴリーごとに表示内容を変える

StyleCatcher用のエントリーが増えてきたので、プラグインカテゴリから独立させて、新たにStyleCatcher専門のカテゴリーを設けました。また、テーマはサムネイルで見せたかったので、ここも他のカテゴリとは少し違うレイアウトにしました。

このようにカテゴリーごとに内容やデザインを変えたいというケースはけっこうあると思います。MTはカテゴリーテンプレートを全カテゴリーで共通して使うため、そのままでは全部のカテゴリが同じレイアウト・デザインになってしまいます。これをMTタグでカテゴリごとに異なる表示に出来るようにしてみます。

この目的に使えるタグはいろいろあるのですが、今回は3.3から装備された<MTIfCategory>タグを使ってみました。

具体的な使い方は以下のようになります。

<MTIfCategory name="カスタマイズ">
<$MTInclude module="custom-all"$>
<MTElse>
<MTIfCategory name="StyleCatcher">
<$MTInclude module="stylecatcher"$>
<MTElse>
上記以外のカテゴリ用のレイアウト
</MTElse>
</MTIfCategory>
</MTElse>
</MTIfCategory>

↑説明しますと、「カスタマイズ」カテゴリにはcustom-allモジュールの内容が表示され、StyleCatcherカテゴリにはstylecatcherモジュールの内容が、そしてそれ以外のカテゴリには<MTElse>~</MTElse>で挟まれた「上記以外のカテゴリ用のレイアウト」が表示されることになります。
このように<MTIfCategory>と<MTElse>をどんどん繰り返して組み合わせていくことで、いくつでもカテゴリーごとに内容を変えることが可能です。

■条件分枝タグの使い方
MTタグの中にはMTIf~で始まる条件分枝タグがいくつかありますが、これらは<MTElse>と組み合わせることによって「○○ごとに内容を変える」ということを可能にしてくれます。この組み合わせは以下が基本の1セットになります。

<MTIfCategory name="aaaaaa">
AAAAAAA
<MTElse>

XXXXXXXX
</MTElse>
</MTIfCategory>

aaaaaaであればAAAAAAAが、そうでなければXXXXXXXが表示されます。さらに条件を増やしたい時はXXXXXXXの部分にこの基本セットを入れ子にします。

<MTIfCategory name="aaaaaa">
AAAAAAA
<MTElse>

<MTIfCategory name="bbbbbb">
BBBBBB
<MTElse>
XXXXXXXX
</MTElse>
</MTIfCategory>

</MTElse>
</MTIfCategory>

赤字が最初の1セットで、青字の部分が入れ子になった2セット目です。さらに3セット目(緑)を入れ子にしてみます。

<MTIfCategory name="aaaaaa">
AAAAAAA
<MTElse>

<MTIfCategory name="bbbbbb">
BBBBBB
<MTElse>
<MTIfCategory name="cccccc">
CCCCCCC
<MTElse>
XXXXXXXX
</MTElse>
</MTIfCategory>

</MTElse>
</MTIfCategory>

</MTElse>
</MTIfCategory>

これで「AAAAAAA」「BBBBBBB」「CCCCCCC」「XXXXXXX」の4つの異なるデザインがそれぞれのカテゴリアーカイブに適用されることになります。どの条件分枝タグでも基本の使い方は同じなので覚えておくと応用範囲が広がると思います。

☆補足☆
サブカテゴリ以下は共通のデザインでいい、という場合は<MTIfCategory>ではなく、<MTIfIsDescendant>でも同じことができます。こちらだと親カテゴリを指示するだけでいいので、カテゴリをサブ以下で多数分類している時はこちらの方がタグが複雑にならなくていいかもしれません。

 

コメント

サイン・インのテストです。