Movable Typeは、ブログソフトですから、カテゴリの一覧を表示することが出来る。
カテゴリの一覧を表示をする場合は、MTのタグを4つ使います。
1. カテゴリ一覧のタグ
<MTCategories>?</MTCategories>
2. 最上位のカテゴリから現在のカテゴリまでを繰り返して表示するタグ
<MTParentCategories>?</MTParentCategories>
(glue="/"でリストを繋ぎます)
3. カテゴリのファイル名を表示するタグ
<$MTCategoryBasename$>
4. カテゴリ名を表示するタグ
<$MTCategoryLabel$>
<ul>
<MTCategories>
<li><a href="<$MTBlogURL$><MTParentCategories glue="/"><$MTCategoryBasename$></MTParentCategories>/"><$MTCategoryLabel$></a></li>
</MTCategories>
</ul>
実際の処理の結果
さらにカテゴリの所属しているこの記事とカテゴリ一覧のカテゴリが一致した場合の処理をやってみます。これは、ユーザビリティを意識したサイト作りをする時にナビゲーションとして使う場面が多くそれを考慮したものです。
一致したカテゴリのみ、カテゴリ名の左右に★★を入れます。
Movable Typeの条件文(if)の記事で書いたときと同じように変数を格納するために、
<MTSetVarBlock name="変数名">値</MTSetVarBlock>を使用します。
現在の記事のカテゴリを値にセットし、変数「category_label」に代入します。
次にカテゴリ一覧を行い、一覧を行っている中で、比較をするための変数「category_label2」にカテゴリを代入します。
最後に、変数「category_label」と変数「category_label2」を比較し、一致した場合の処理と一致しなかった場合の処理を行います。
コードは、以下になります。
<MTSetVarBlock name="category_label"><$MTCategoryLabel$></MTSetVarBlock>
<ul>
<MTCategories>
<MTSetVarBlock name="category_label2"><$MTCategoryLabel$></MTSetVarBlock>
<MTIf name="category_label2" eq="$category_label">
<li>★★<a href="<$MTBlogURL$><MTParentCategories glue="/"><$MTCategoryBasename$></MTParentCategories>/"><$MTCategoryLabel$></a>★★</li>
<MTElse>
<li><a href="<$MTBlogURL$><MTParentCategories glue="/"><$MTCategoryBasename$></MTParentCategories>/"><$MTCategoryLabel$></a></li>
</MTElse>
</MTIf>
</MTCategories>
</ul>
実際の処理の結果
サブフォルダを入れて行うこともで出来ますし、一致したときの処理に背景の色やテキスト、リンクの色を変更することも出来ます。