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 がサブカテゴリーや親カテゴリーのリンクやラベルを出力できる、というのを知らないとちょっと苦労するかと思います。
コメントを残す