Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Template Tag Referenceテンプレートタグリファレンス

MTFor

最終更新日: 2016.11.28

様々なプログラミング言語にある for ループをおこなうためのブロックタグです。指定された値の間、囲まれたコンテンツを繰り返し処理します。

  • 使い方
<mt:For var="x" from="5" to="10" glue= " | ">
  <mt:If name="__first__"><p>This is my first time through!</p></mt:If>
  <p>now x = <$mt:Var name="x"$></p>
</mt:For>

モディファイア

from
start

ループ開始時の値を設定します。初期値は 0 です。

to
end

設定した値を越えた場合、ループは停止します。このモディファイアは必須です。

increment
step

1 回のループで増加する値を指定します。何も指定しない場合は、1 ずつ増加します。

例えば、from に 0、to に 10 と設定し、increment を 2 に設定した場合、0, 2, 4, 6, 8, 10 と増加します。

glue="foo"

ループの各ブロックの間に表示する区切り文字を設定します。

var

インデックスの値(__index__)を格納する変数名を指定します。

特別な変数

MTFor ブロックタグによるループの中では以下の特別な変数が利用できます。

__first__

ループ出力の最初である場合 true (1) となります。

__last__

ループ出力の最後である場合 ture (1) となります。

__odd__

ループ出力の奇数回目の場合 ture (1) となります。

__even__

ループ出力の偶数回目の場合 ture (1) となります。

__index__

ループのインデックスを格納します。

__counter__

ループした回数を格納します。

__index__ と __counter__ 変数の違いは以下のサンプルで確認することができます。__counter__ 変数は、ループした回数だけ 1 ずつ増えていきますが、__index__ 変数の値は、MTFor ブロックタグに設定した変数 test と同じループのインデックスを表示します。

<mt:For var="test" from="10" to="20" increment="2">
  <p>now test = <$mt:Var name="test"$> | __index__: <$mt:Var name="__index__"$> | __counter__: <$mt:Var name="__counter__"$></p>
</mt:For>

サンプルの出力例は以下のようになります。

<p>now test = 10 | __index__: 10 | __counter__: 1</p>
<p>now test = 12 | __index__: 12 | __counter__: 2</p>
<p>now test = 14 | __index__: 14 | __counter__: 3</p>
<p>now test = 16 | __index__: 16 | __counter__: 4</p>
<p>now test = 18 | __index__: 18 | __counter__: 5</p>
<p>now test = 20 | __index__: 20 | __counter__: 6</p>

MTFor と関連のあるテンプレートタグ (6)

  • 様々なプログラミング言語にある for ループをおこなうためのブロックタグです。指定された値の間、囲まれたコンテンツを繰り返し処理します。

  • テンプレートモジュールや外部ファイルを読み込むときに使うファンクションタグです。モディファイア module や file などにより、読み込む対象を指定します。widget モディファイアを利用すれば、ウィジェット単体の読み込みもおこなえます。

    外部ファイルを読み込む場合、外部ファイルの内容を更新しても、再構築をしない限りブログには反映されません。再構築せずに更新を反映するためには、ダイナミックパブリッシングを利用するか、SSI (サーバーサイドインクルード) や PHP のインクルードを利用します。

    指定したテンプレートモジュールが自ブログにない場合、親ウェブサイトのテンプレートモジュールを参照します。親ウェブサイトにもない場合は、グローバルテンプレートモジュールを参照します。

  • MTInclude ファンクションタグと同じくテンプレートモジュールを読み込みます。違いは、読み込んだテンプレートモジュール内の所定の箇所に、MTIncludeBlock ブロックタグで囲んだ内容を差し込める点です。

    テンプレートモジュールを読み込む際に、そのテンプレートモジュール内の一部の内容だけ読み込み元で指定したい場合に使用します。

  • ハッシュ(配列)変数をモディファイア name または var で指定すると、指定されたハッシュ(配列)の内容に応じてタグで囲まれた内容を繰り返し処理します。

  • このタグは現在、非推奨です。MTWidgetSet タグを使用してください。

    name モディファイアで指定したウィジェットセットを表示します。

    このテンプレートタグは MTWidgetSet ファンクションタグと同じ機能を持ちます (エイリアス)

  • name モディファイアで指定したウィジェットセットを表示します。