<mt:setvar foo value="fizz","buzz">こんなMTタグの書き方はありでしょうか!?実はありなんです!
というわけで、MT4.1で利用可能なMTタグの書式を調べてみました。
全般編
- 基本形
<$MTBlogName$>
- $マークは省略出来る
<MTBlogName>
かたっぽだけというのもOK。ただしかっこ悪い。<$MTBlogName>
<MTBlogName$>
これはMT3から省略できました。ちなみに、ブロックタグでは$マークをつけること自体出来ません。ブロックの閉じタグの頭のスラッシュ「/」と$マークが両立できないためです。- 末尾に/を付けられる
- これはMT4からの機能。
<MTBlogName />
XMLの空タグ風に記述できます。これもブロックタグでは使えないかと思われます。
タグ名編
- 大文字小文字は問わない
- MT4より。
<mtblogname>
<mtBlogName>
<mTblOgnAme>
すべてOKです - 「MT」とタグ名の間にコロンを挟める
- MT4より。
<mt:blogname>
モディファイア編
- 基本
- キー="値"の形で指定します。
<mt:setvar name="foo" value="fizz">
- 値の括りはシングルクオートでも可
<mt:getvar name='foo'>
- クオートを省略しても可
<mt:getvar name=foo>
ただし、半角スペースのような、単語の区切りとみなされる物を値に含む場合はダメです。つまり、これはOKですが<mt:setvar name=fizzbuzz value=15> <mt:getvar name=fizzbuzz>
これはNGです。<mt:getvar name=fizz buzz>
- イコールの前後やアトリビュートの前後にスペースや改行を挟める
<mt:setvar name = "boo" value = " fizz buzz ">
<mt:getvar name = "boo" capitalize = "1" strip = "-" />- 値には小なり「<」大なり「>」記号を含めることが出来る
- 実はMT4.1から。それ以前は大なり「>」を含めることが出来ませんでした。
<mt:setvar name="goo" value="<fizz><buzz>">
- nameキーは省略可能
<mt:getvar goo>
これは、<mt:getvar name="goo">
と同じ意味となります。- カンマ区切りで配列を渡せる
<mt:setvar moo value="fizz","buzz">
区切りはコロンでもOKです。<mt:setvar weekdays value="sun":"mon":"tue":"wed":"thu":"fry":"sat">
なお、配列を指定する場合は、クオート(''や""の括り)が必須となります。
実際にモディファイアに直接配列を指定できるケースというのはそう多くは無いのですが、Entriesのidモディファイアや、regex_replaceグローバルモディファイアで利用することが出来ます。<mt:entries id="1":"3":"5"> <mt:entrytitle> </mt:entries>
<mt:getvar boo regex_replace="/z/g","k">
- $記号で変数展開
<mt:setvar doo value="foo"> <mt:getvar name="$doo">
これは、変数「foo」の値が出力されます。
この変数展開は、配列に対しても有効です。<mt:setvars> pattern=/z/g replace=p </mt:setvars> <mt:getvar boo regex_replace="$pattern","$replace">
なお、[]や{}による配列やハッシュへのアクセスは、あくまで「mt:setvar」「mt:getvar」のタグに固有の機能となりますので、今回は調べませんでした。