MTタグの書き方を調べてみました。

  • Posted on
  • by

<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」のタグに固有の機能となりますので、今回は調べませんでした。
おわり。