Movable Typeのカテゴリ別ブログ記事一覧ページで、子カテゴリの一覧から属する親カテゴリを取得しようとして少し悩んだのでメモ。
サンプルコード
例として、以下のようなカテゴリがあるとします。
- カテゴリA(cata)
- カテゴリA-1(cata1)
- カテゴリB(catb)
- カテゴリB-1(catb1)
- カテゴリC(catc)
カテゴリA-1やカテゴリB-1の記事一覧ページから親カテゴリを取得したい場合、以下のようにするといいようです。
<mt:Ignore><!-- 親カテゴリ名を取得 --></mt:Ignore> <mt:HasParentCategory> <mt:ParentCategory> <mt:CategoryLabel> </mt:ParentCategory> </mt:HasParentCategory>
MTHasParentCategoryで親カテゴリがあるかを判別、MTParentCategoryで現在の親カテゴリを取得して、MTCategoryLabelで親カテゴリ名を表示しています。
試しにパンくずリストを実装してみます。
<ol> <li><a href="/">トップ</a></li> <mt:HasParentCategory> <mt:ParentCategory> <li><a href="<mt:CategoryArchiveLink>"><mt:CategoryLabel></a></li> </mt:ParentCategory> </mt:HasParentCategory> <li><a href="<mt:CategoryArchiveLink>"><mt:CategoryLabel></a></li> </ol>
カテゴリは親子のみの想定です。
再構築を行うと、各カテゴリ別一覧で以下のように生成されました。
カテゴリAの一覧ページ
<ol> <li><a href="/">トップ</a></li> <li><a href="http://xxxxx/blog/cata/">カテゴリA</a></li> </ol>
カテゴリA-1の一覧ページ
<ol> <li><a href="/">トップ</a></li> <li><a href="http://xxxxx/blog/cata/">カテゴリA</a></li> <li><a href="http://xxxxx/blog/cata/cata1/">カテゴリA-1</a></li> </ol>
カテゴリBの一覧ページ
<ol> <li><a href="/">トップ</a></li> <li><a href="http://xxxxx/blog/catb/">カテゴリB</a></li> </ol>
カテゴリB-1の一覧ページ
<ol> <li><a href="/">トップ</a></li> <li><a href="http://xxxxx/blog/catb/">カテゴリB</a></li> <li><a href="http://xxxxx/blog/catb/catb1/">カテゴリB-1</a></li> </ol>
カテゴリCの一覧ページ
<ol> <li><a href="/">トップ</a></li> <li><a href="http://xxxxx/blog/catc/">カテゴリC</a></li> </ol>
【参考サイト】
- MTHasParentCategory – テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
- MTParentCategory – テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
- MTEntryPrimaryCategory – テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
コメントが承認されるまで時間がかかります。