MTタグ逆引き辞典(新)

MovableType.net
逆引き辞典

記事、Webページなどの各動作別でMTタグを探すことができます。
アルファベット別で探す場合はタグリストをご覧ください。

テンプレートタグの種類と働き

MovableType.net のテンプレートタグは HTML などのマークアップ言語に似たフォーマットを持っています。 しかし、実際に行う作業はマークアップではなく、プログラミングに近いものがあり、条件に当てはまるだけ ループしたり、特定の条件による処理の分岐などをおこなえます。ここではテンプレートタグの種類と各々の 働きを解説します。

ブロックタグ

ブロックタグは XHTML 要素のように開始タグと終了タグをもち、ひとまとまりのテンプレートを囲みます。 このブロックタグにコンテナされたひとまとまりのテンプレートをサブテンプレートと呼び、テンプレートタグ以外のものも 含むことができます。また、ブロックタグの働きによりサブテンプレートとして利用できるテンプレートタグがかわります。 たとえば、記事のリストを表示するためのブロックタグ、MTEntries では、以下のような書式になります。

<mt:Entries>
	<h2><mt:EntryTitle /></h2>
	<mt:EntryBody />
</mt:Entries>

基本的にブロックタグは、コンテナしたサブテンプレートを処理するためのスペースだと考えると良いでしょう。 例では MTEntries ブロックタグを利用することで、メインインデックステンプレート内で MTEntry… などの テンプレートタグが利用できるようになります。 ブロックタグの種類には大きく分けて二種類あります。各々の働きをみてみましょう。

リストを表示するブロックタグ

ブロックタグで囲まれたサブテンプレートは MovableType.net の設定、もしくはブロックタグに設定されたモディファイアに従い 繰り返し処理されます。 たとえばメインインデックステンプレートで、MTEntries タグを利用し、最新 5 件の記事タイトルをリストするの場合、 以下のようになります。

<ul>
<mt:Entries lastn="5">
  <li><mt:EntryTitle /></li>
</mt:Entries>
</ul>

この、最新 5 件の記事タイトルをリストするテンプレートについて、解説すると以下のようになります。

ul 要素 (unordered list) の開始タグと終了タグは繰り返す必要が無いので MTEntries ブロックタグの外側に配置します。
MTEntries ブロックタグの開始タグと終了タグを定義し、合わせて最新 5 件と指定するために lastn モディファイアを設定し、値を 5 としています。
MTEntries ブロックタグのサブテンプレートとして、li 要素 (list) でマークアップされた MTEntryTitle を設定します。
このようにテンプレートを作成すると、

  • 記事タイトル
  • が lastn モディファイアで指定された最新 5 件分 (つまり 5 回) 繰り返して出力します。結果は以下のようになります。

      <ul>
        <li>記事タイトル 01</li>
        <li>記事タイトル 02</li>
        <li>記事タイトル 03</li>
        <li>記事タイトル 04</li>
        <li>記事タイトル 05</li>
      </ul>
    

    条件文を作成するブロックタグ (コンディショナルタグ)
    特定の条件に合わせてサブテンプレートを処理するか否かを判断するブロックタグです。
    たとえば、記事に追記が有る場合にのみ、特別な表示をしたい場合や、コメントの件数にあわせて出力するメッセージを変化させることができます。

    たとえば、MTIfNonEmpty ブロックタグは tag モディファイアで指定したテンプレートタグに値が有る場合のみ、コンテナしたサブテンプレートを処理します。

      <mt:IfNonEmpty tag="MTENtryMore">
        <p><mt:EntryTitle />には追記があります。</p>
      </mt:IfNonEmpty>
    

    記事の追記入力欄に何か一文字でも入力されていれば、つまり記事に追記があれば mt:IfNonEmpty ブロックタグがコンテナしているサブテンプレートを処理します。

    ファンクションタグ

    ブロックタグとは違い、ファンクションタグは X/HTML の br (forced line break) 要素のようになります単体での利用が可能です。どこでも利用可能なもの、特定のコンテキスト内でのみ利用可能なものがあります。
    たとえば、MTEntryTitle ファンクションタグはエントリーコンテキストの中で利用可能です。

    テンプレートタグの書式

    大文字・小文字の区別は行いません。例えば、ファンクションタグは以下のように書くことができます。

    <$mtentrytitle$>
    <$MTENTRYTITLE$>
    <$mtentryTITLE$>
    

    また、ブロックタグは以下のように書くことができます。

    <mtentries></mtentries>
    <MTENTRIES></MTENTRIES>
    <mtENTRIES></mtENTRIES>
    

    テンプレートタグの種類を判別しやすいよう、ファンクションタグに設定されていた $ はこれまで同様、省略可能です。
    テンプレートタグの種類ごとに書き方を変えて判別することもできますが、単体で動作するファンクションタグは、XHTML の br (forced line break) 要素のように、書くことができます。

    <mtEntryTitle />
    

    さらに、テンプレートタグの開始にある MT という部分と、機能を表す部分の間にデリミタを設定することができます。

    <mt:Entries>
      <mt:EntryTitle />
    </mt:Entries>
    

    グローバル・モディファイア