F.Ko-Jiの「一秒後は未来」

MTで親カテゴリーやサブカテゴリーを表示する際の覚え書き

MTで初めてサブカテゴリーをつくってみたのですが、テンプレートに反映させる際にどのテンプレートタグを使えばいいのかわかりづらかったのでメモ。

サブカテゴリー自身には親カテゴリーの情報は含まれない

サブカテゴリーのラベルには親カテゴリーのラベルは含まれません。たとえば「iPhone」というカテゴリーの下に「アプリケーション」というサブカテゴリーを作成しても、サブカテゴリーのラベル(<$MTCategoryLabel$>で表示されるもの)は「アプリケーション」となります。

そのため、サブカテゴリーのアーカイブページのタイトルや、パンくずリストで利用するには少し工夫が必要となります。

サブカテゴリーがある場合にサブカテゴリーの一覧を表示する

MTHasSubCategoriesでサブカテゴリーの存在判定をして、MTSubCategoriesブロックの中でサブカテゴリーを出力します。

<MTHasSubCategories>
<MTSubCategories>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel encode_html="1"$></a>
</MTSubCategories>
</MTHasSubCategories>

親カテゴリーのアーカイブページにおいて、そのカテゴリーに属するサブカテゴリーの一覧を表示したい場合などに利用できます。

MTSubCategoriesにはいくつかオプションがあります。

親カテゴリーがある場合に親カテゴリーを表示

MTHasParentCategoryで親カテゴリーの存在判定をして、MTParentCategoryブロックの中で親カテゴリーを出力します。

<MTHasParentCategory>
<MTParentCategory>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel encode_html="1"$></a>
</MTParentCategory>
</MTHasParentCategory>

サブカテゴリーのアーカイブページにおいて、その親カテゴリーを表示したい場合などに利用できます。

例えばサブカテゴリーのアーカイブページのtitleに親カテゴリーのラベルも表示させたい場合は、次のようにできます。

<title><MTHasParentCategory>
<MTParentCategory><$MTCategoryLabel encode_html="1"$> - </MTParentCategory>
</MTHasParentCategory>
<$MTArchiveTitle encode_html="1"$></title>

MTSubCategories や MTParentCategory のブロックの中で MTCategoryArchiveLink や MTCategoryLabel がサブカテゴリーや親カテゴリーのリンクやラベルを出力できる、というのを知らないとちょっと苦労するかと思います。

コメントを残す

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

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など