Movable Type 備忘録

 Movable Type のタグの書式について

  • Feb112009
  • Vote:
    http://bizcaz.com/archives/2009/02/11-155733.php
  • Categories: MovableType
  • Tags:
  • Social Bookmark

こんにちわ^^

Movable Type のタグの書式(書き方)について質問がありました。
ご存知のように MT4 からかなり MT タグを使ってプログラマブルにテンプレートを作成することができます。 MTIf ブロックタグのように条件分岐ができるようになったり、MTFor や MTLoop ブロックタグ を使えばループ処理を行うこともできますね。

慣れないうちはさっぱりだと思うのですが、いろんなサイトさんでサンプル的にコードを記されてますので、参考にして自分のものにして頂けたらと思います。
また、ご連絡いただければ分かる範囲でお教えすることもできます (●>∀<●)/

で、今回メルにて質問頂いた内容は、Movable Type の MT タグの書き方についてです。

通常の MT タグの書き方

通常なら以下のような書き方になりますよね。

  1. <$MTBlogURL$>

ファンクションタグなら、アングルブラケット「<>」で囲った中にダラー「$」で挟んでタグ名称を記述しますね。
ブロックタグなら以下のような書き方になります。

  1. <MTEntries>~</MTEntries>
  2. <MTIf>~</MTIf>

ブロックタグは HTML タグのように必ず閉じタグ( </MTEntries> )が必要です。閉じタグを忘れると再構築時に怒られます (; ̄∇ ̄A

大文字、小文字による識別

テンプレートタグリファレンスを見ると、タグ名称は大文字、小文字が混在してます。
でも、実はすべて大文字、小文字でも問題ありません。

  1. <$mtblogurl$>

要するに大文字、小文字による識別はされてないようです。

最近の主流!? みたいな書き方

わたしもよく使ってる書き方ですが、以下のようにも書くことができます。

  1. <$mt:BlogURL$>
  2. <$mt:blogurl$>

リファレンスでは MTBlogURL ですが mt:BlogURL のように、最初の MT を mt: に置き換えて書くこともできます。これはファンクションタグ、ブロックタグ共に使えます。ただし、この書き方は MT4 以降となります。

わたしはデフォルトタグについては mt: で書いて、プラグインによって追加されたタグについては MT で書くといったローカルルールがあったりします。
とはいっても、あまり厳密に守ってはいないですけど (; ̄∇ ̄A

各自のお好みで使えばいいと思います。
ちなみに、小粋空間さんは最近ファンクションタグを以下のように書かれてました。

  1. <mt:BlogURL />

<br /> のように、XML の空タグ感覚で書かれてるようです ( ̄∇ ̄)b

モディファイアについて

モディファイアには、人によってシングルクォーテーション「'」だったり、ダブルクォーテーション「"」だったりしますね。

  1. <mt:SetVar name="foo">

また、シングルクォーテーション、ダブルクォーテーションを省略しても問題ないようです。わたしも最近知りました。

  1. <mt:SetVar name=foo>

ただし、気をつけることはスペースを含む文字列の場合には支障がでますのでご注意ください。
たとえば「Movable Type」という文字列の場合には支障ができます。

  1. OK な書き方
  2. <mt:SetVar name='Movable Type'>
  3.  
  4. NG な書き方
  5. <mt:SetVar name=Movable Type>

regex_replace グローバルモディファイアのように、カンマ「,」区切りで 2 つのパラメータを渡すことも可能です。
ただし、カンマの間にスペースなどを入れてはいけません。

  1. <$mt:CategoryLabel regex_replace='foo','boo'$>

これは、いわゆる配列を意味します。
たとえば、以下のような記述は、

  1. <mt:SetVar name="foo" value="Movable","Type">

以下のように取り出すことができます。

  1. <mt:GetVar name="foo" index="0">
  2. <mt:GetVar name="foo" index="1">
  3.  
  4. または、
  5.  
  6. <mt:GetVar name="foo[0]">
  7. <mt:GetVar name="foo[1]">

カンタンに説明すると、foo という名のタンスがあって、一番上の引き出しに「Movable」という文字列を、次の引き出しには「Type」という文字列を収納するといったかんじでしょうか。
配列は必ず 0 番から始まりますのでご注意ください。 また、覚えておくと便利ですよ ( ̄∇ ̄)b

こんな使い方もできます。

  1. <mt:SetVar name="foo" value="Movable","Type">
  2. <mt:SetVar name="boo" value="$foo">
  3. <mt:SetVar name="boo" value="4.23" index="2">

青字の部分は、先ほど示した例になります。
赤字の部分では、foo という変数の値を boo という変数に代入してます。 この時点で foo と boo はまったく同じものになります。

よく見ると分かるように、foo という変数の前にダラー「$」が付いてます。 value モディファイアで特定の変数を指定する場合、ダラーを付けることでその変数の値を参照することができます。

緑字の部分では、boo という変数の 2番目に「4.23」という文字列を代入してます。
そうすると、foo と boo という変数( 配列 )には以下のような値が入ることになります。

  1. foo の値
  2. [0] Movable
  3. [1] Type
  4.  
  5. boo の値
  6. [0] Movable
  7. [1] Type
  8. [2] 4.23

以下のコードをコピーして、適当なインデックス・テンプレートを新規作成して実験してみるといいです。

<mt:SetVar name="foo" value="Movable","Type">
<mt:SetVar name="boo" value="$foo">
<mt:SetVar name="boo" value="4.23" index="2">
<div><mt:GetVar name="boo[0]"></div>
<div><mt:GetVar name="boo[1]"></div>
<div><mt:GetVar name="boo[2]"></div>

以上です。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

 

コメント用フィード