配列を使って処理をしたいことがあったので、変数に配列を格納してループを回す方法を調べました。
サンプルコード
テンプレート内に配列の各値をベタ書きする場合、以下のようにindexに配列の添え字を指定することで格納できます。
<!-- 変数に配列を格納 --> <mt:SetVarBlock name="array" index="0">宝多 六花</mt:SetVarBlock> <mt:SetVarBlock name="array" index="1">新条 アカネ</mt:SetVarBlock> <!-- 配列の出力 --> <mt:Loop name="array"> <mt:Var name="__value__">, </mt:Loop>
以下のように出力できました。
宝多 六花, 新条 アカネ,
べた書きの時は上記でもよいのですが、ループ処理で配列を格納してから別のループ処理をしたい場合もあります。
例えば、以下のようなカテゴリを設定しているとします。
- カテゴリ名:カテゴリA
出力ファイル名:cata - カテゴリ名:カテゴリB
出力ファイル名:catb - カテゴリ名:カテゴリC
出力ファイル名:catc
この各カテゴリの出力ファイル名を配列に格納したい場合、functionで関数を指定することで格納できます。
例えば、配列の末尾に値を追加できるpushを指定してみます。
<!-- 変数に配列を格納 --> <mt:Categories> <mt:SetVarBlock name="array" function="push"><mt:CategoryBasename></mt:SetVarBlock> </mt:Categories> <!-- 配列の出力 --> <mt:Loop name="array"> <mt:Var name="__value__">, </mt:Loop>
再構築すると、以下のように出力できました。
cata, catb, catc,
【参考サイト】
- MTSetVarBlock – テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
- MTLoop – テンプレートタグリファレンス | CMSプラットフォーム Movable Type ドキュメントサイト
コメントが承認されるまで時間がかかります。