MT4のカスタマイズのポイント

2008年1月23日

MTはなんといってもカスタマイズが簡単な事がすごく便利なポイントであると思います。今回はMT4でのカスタマイズにフォーカスを当ててMTでのカスタマイズのKeyとなるMTSetVarBlockMTIfをノンプログラマーから見た視点で解説をしたいと思います。

MTSetVarBlockとは変数を格納できる箱である

MTSetVarBlockはMTタグでカテゴリーであったりエントリーのIDなどの変数(条件によって変わる値)を格納する機能があります。name属性に変数を代入するイメージですね。”このカテゴリーにはこれを表示したい”なんてときは下記のように記述します。

<MTSetVarBlock name="catList"><$MTEntryCategory$></MTSetVarBlock>

注意点としてはMTをスタティック(静的)に生成している場合MTSetVarBlock内で改行を入れたらエラーが出るので気をつけましょう。

そして、現在のページのカテゴリーを格納した変数を利用する場合は下記のようにMTEntriesタグにname属性で指定した変数を代入します。そうすることで、同じカテゴリーのエントリーへのリンクを表示することができます。

<MTSetVarBlock name="catList"><$MTEntryCategory$></MTSetVarBlock>
<MTEntries category="$catList">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</MTEntries>

MTifは見たまんま分岐構文ifの役割で使用する

上記の例だと現在のページのエントリーも一緒になって表示されるので、現在のページは除外して表示したいですよね。そういうときにMTifを使って現在のエントリーは除外するように指定します。属性で今回使用したneはMTSetVarBlockで格納した変数とnameで指定した変数とが一致しない場合にのみ実行するという意味です。
属性について詳しくはMTif|テンプレートタグリファレンスで確認してください。

<MTSetVarBlock name="thisEntry"><$MTEntryID$></MTSetVarBlock>
<!-- 現在のエントリーのIDの変数を格納する //-->
<MTEntryCategories>
<!-- 現在のページのカテゴリーを実行 //-->
<MTSetVarBlock name="catList"><$MTEntryCategory$></MTSetVarBlock>
<!-- 現在のページのカテゴリーをcatList変数に格納する //-->
<MTEntries category="$catList">
<!-- 現在のページのカテゴリーのエントリーの表示を実行 //-->
<MTSetVarBlock name="enID"><$MTEntryID$></MTSetVarBlock>
<!-- エントリーのIDの変数を格納する //-->
<MTIf name="thisEntry" ne="$enID">
<!-- 現在エントリーのIDを比較して現在のエントリーを除外する //-->
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
<!-- リンクを表示する //-->
</MTIf>
</MTEntries>
</MTEntryCategories>

やっぱりわからなかった!という方のために、このMTSetVarBlockとMTifでこんな事ができるんだという記事をご紹介します。丁寧に解説されてますので、おそらく理解できるかと思います。

これと同じような使い方でMTでは同じように変数を格納するMTSetVarと格納した変数を呼び出すMTGetVarを利用してCSSも色々カスタマイズできちゃいます。MTSetVarとMTSetVarBlockの大きな違いは変数に設定する値に MTタグが利用できるかどうかです。※MTSetVarBlockのほうがMTタグを利用できます。

この記事について