Movable Type 4のブロックタグ内で使える変数

Movable Type 4では、ブロックタグ(従来の呼び方ではコンテナタグ)の中で、「__first__」「__last__」「__even__」「__odd__」「__counter__」の各変数を使うことができるようになっています。
この使い方を紹介します。

1.定義される変数

ブロックタグの内部では、以下の変数が定義されます。
なお、変数名の前後にある「__」は、アンダースコア(_)2つです。

変数名変数が取る値
__first__繰り返しの1回目なら1、それ以外なら0
__last__繰り返しの最後なら1、それ以外なら0
__odd__繰り返しの奇数回目なら1、それ以外なら0
__even__繰り返しの偶数回目なら1、それ以外なら0
__counter__現在の繰り返し回数

2.繰り返しの最初と最後を判断する

ブロックタグでは繰り返しが行われることが多いですが、その最初(または最後)だけ何か特別な処理をしたいことは、比較的よくあります。
テンプレートタグには、「MTXXXHeader」や「MTXXXFooter」など、繰り返しの先頭と最後を判断する条件タグがありますが、それと同じようなことを__first__と__last__の変数で行うことができます。

Movable Type 4では、変数の値が真(0や空文字列以外)かどうかを判断するタグとして、「MTIf」というタグが追加されています。
このタグを使うことで、以下のような書き方をすることができます。

<MTEntries等のブロックタグ>
<MTIf name="__first__">
繰り返しの1回目のときのみ出力する内容
</MTIf>
<MTIf name="__last__">
繰り返しの最後のときのみ出力する内容
</MTIf>
エントリー等の情報を出力する部分
</MTEntries等>

3.奇数件目と偶数件目で出力する内容を変える

__odd__(または__even__)の変数を使うと、エントリー等の一覧を表示する際に、奇数件目と偶数権目で出力する内容を変えることができます。
例えば、以下のようにすると、エントリー一覧を出力する際に、奇数件目と偶数件目とで、div要素にそれぞれ「odd」「even」のクラスを割り当てることができます。
これを利用すれば、「奇数件目と偶数件目で背景色を変える」といったことができます。

<MTEntries>
<div class="<MTIf name="__odd__">odd<MTElse>even</MTIf>">
エントリーの内容を出力する部分
</div>
</MTEntries>

4.繰り返し回数を出力する

__counter__変数を使うと、繰り返しの1回ごとに、現在の繰り返し回数を出力することができます。
エントリー等を一覧表示する際に、個々のエントリー等に番号を振りたい場合に、この変数が便利です。

例えば、以下のようにすると、エントリーのタイトルの一覧を番号付きで出力することができます。

<p>
<MTEntries>
<$MTVar name="__counter__"$> <$MTEntryTitle$><br />
</MTEntries>
</p>

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください