MTSetVarBlock
MTSetVarテンプレートタグを用いた変数の生成にて、valueモデファイアへテンプレートタグを直接指定したいケースは多いです。しかし、それはできません。以下コードは、正しく動作しないです。
<MTSetVar name="ThisEntry" value="<MTEntryTitle>">
変数へテンプレートタグの出力結果を代入したい場合には、MTSetVarBlockテンプレートタグを用います。ブロックタグです。MTSetVarと異なり、閉じるタグが必要です。
基本的な書式
書式は以下のとおりです。
<MTSetVarBlock name="ThisEntry"><MTEntryTitle></MTSetVarBlock>
nameモデファイアにはMTSetVarと同じく変数名を記述します。nameモデファイアは必須です。変数名であるが、安易に短い名前ではなく、多少は意味のある語句とするほうがわかりやすいです。
valueモデファイアは存在しません。これは、<MTSetVarBlock></MTSetVarBlock>タグで囲まれた部分の実行結果がvalueとしてセットされるからです。
つまり、上記サンプルコードは、ThisEntryという変数を定義し、その値が<MTEntryTitle>の実行結果(そのエントリのエントリ名)となるという意味です。
応用的な書式
以下のように、AllEntries変数ひとつにMTEntriesブロックタグでの取得データを加工してすべてセットすることも可能です。
<MTSetVarBlock name="AllEntries">
<ul>
<MTEntries>
<li><a href="<MTEntryLink>"><MTEntryTitle></a></li>
</MTEntries>
</ul>
</MTSetVarBlock>
このサンプルコードは、AllEntries変数へ、MTEntriesブロックタグで取得した全エントリのリンク付きタイトルをul、liタグでマークアップした結果をまとめてセットする例です。
- カテゴリ:SetVar系