Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Template Tag Referenceテンプレートタグリファレンス

MTIf

最終更新日: 2017.10.10

設定した条件により実行内容を分けるためのブロックタグです。MTSetVar ファンクションタグや、MTSetVarBlock, MTSetVarTemplate ブロックタグで定義した変数を用いて条件文を作成します。

このタグは条件を満たした場合に実行します。条件を満たさない場合に実行する場合は、MTUnless ブロックタグを使用するか、MTIf ブロックタグの中で MTElse, MTElseIf ブロックタグを使用します。

  • 使い方
<$mt:SetVar name="love" value="polar bear"$>

<mt:If name="love" eq="elephant">
<p>私はゾウを愛しています</p>
<mt:ElseIf eq="polar bear">
<p>私はゾウより、シロクマを愛しています</p>
<mt:Else>
<p>私はゾウもシロクマも愛していないのです</p>
</mt:If>

モディファイア

name="foo"

条件文の対象となる変数の名前 (MTSetVar ファンクションタグなどで設定した name モディファイアの値) を設定します。このモディファイアの値をもとに条件分岐がおこなわれます。MTIf タグの使用には、このモディファイアもしくは tag モディファイアのいずれかが必須です。もしいずれのモディファイアも指定していない場合は、必ず false (偽) を返します。

name 以外にモディファイアを指定しない場合は、指定した変数の値の有無で判定します。指定したテンプレートタグに 0 以外の値がある場合は true (真)0 もしくは値が無い場合は false (偽) を返します。

<$mt:SetVar name="elephant" value="foo"$>
<mt:If name="elephant">
<p>変数 elephant に値があるので、この段落は表示されます。</p>
</mt:If>
tag="TagName"

Movable Type のテンプレートタグを指定します。指定したテンプレートタグの出力値をもとに条件分岐がおこなわれます。接頭辞の MT は省略できます。name モディファイアとの併用はできません。併用した場合は name モディファイアが優先されます。

tag 以外にモディファイアを指定しない場合は、指定したテンプレートタグの値の有無で判定します。指定したテンプレートタグに 0 以外の値がある場合は true (真)0 もしくは値が無い場合は false (偽) を返します。

<mt:If tag="CategoryLabel" eq="foo">
<p>MTCategoryLabel タグの出力内容が foo なので、この段落は表示されます。</p>
</mt:If>

さらにモディファイアを指定して条件を細かく設定できます。何も指定しない場合は、name もしくは tag モディファイアに指定した変数に 0 以外の値がある場合にのみ実行します。

like="foo"

指定した変数の値に foo が含まれる場合にのみ実行します。

<$mt:SetVar name="elephant" value="love"$>
<mt:If name="elephant" like="lo">
<p>変数 elephant の値に lo が含まれるので、この段落は表示されます。</p>
</mt:If>

like モディファイアでは Perl の正規表現を利用できます。以下の例では name モディファイアに指定した変数の値が barbaz で始まる場合にのみ実行します。

<$mt:SetVar name="elephant" value="barcamp"$>
<mt:If name="elephant" like="^(bar|baz)">
<p>変数 elephant の値に bar もしくは baz で始まるので、この段落は表示されます。</p>
</mt:If>
eq="foo"

指定した変数の値が foo と一致する場合にのみ実行します。

<$mt:SetVar name="elephant" value="love"$>
<mt:If name="elephant" eq="love">
<p>変数 elephant の値が love と一致するので、この段落は表示されます。</p>
</mt:If>
ne="foo"

指定した変数の値が foo と一致しない場合にのみ実行します。

<$mt:SetVar name="elephant" value="love"$>
<mt:If name="elephant" ne="like">
<p>変数 elephant の値が like と一致しないので、この段落は表示されます。</p>
</mt:If>
lt="foo"

指定した変数の値が foo よりも小さい場合にのみ実行します。

<$mt:SetVar name="age" value="28"$>
<mt:If name="age" lt="30">
<p>変数 age の値が 30 より小さいので、この段落は表示されます。</p>
</mt:If>
gt="foo"

指定した変数の値が foo よりも大きい場合にのみ実行します。

<$mt:SetVar name="age" value="28"$>
<mt:If name="age" gt="26">
<p>変数 age の値が 26 より大きいので、この段落は表示されます。</p>
</mt:If>
le="foo"

指定した変数の値が foo 以下の場合にのみ実行します。

<$mt:SetVar name="age" value="28"$>
<mt:If name="age" le="100">
<p>変数 age の値が 100 以下なので、この段落は表示されます。</p>
</mt:If>
ge="foo"

指定した変数の値が foo 以上の場合にのみ実行します。

<$mt:SetVar name="age" value="28"$>
<mt:If name="age" ge="28">
<p>変数 age の値が 28 以上なので、この段落は表示されます。</p>
</mt:If>
op new in mt4.1

op モディファイアに関しては、ドキュメント: テンプレートタグで利用できる演算関数を参照ください。

indexnew in mt4.1

配列のインデックス (添え字) を指定して、配列の変数から値を取り出します。

<mt:If name="foo" index="0" eq="hoge">

このタグは以下のようにも書くことができます。

<mt:If name="foo[0]" eq="hoge">

名前[添え字] という記述が index モディファイアの代わりです。

key new in mt4.1

ハッシュのキーを指定して、ハッシュの変数から値を取り出します。

<mt:If name="bar" key="a" eq="hoge">

このタグは以下のようにも書くことができます。

<mt:If name="bar{a}" eq="hoge">

名前{キー} という記述が key モディファイアの代わりです。

test new in mt4.1

Perl の式を記述することができ、結果を利用して条件分岐をおこないます。

関連記事

MTIf と関連のあるテンプレートタグ (78)

  • 特定のタグがアイテムに付けられているときに囲まれた内容を処理するブロックタグです。tag モディファイアでタグの名前を指定します。

  • MTAssets ブロックタグとあわせて使用し、画像の一覧を作成する際、MTAssets ブロックタグ に設定した assets_per_row モディファイアで設定した一行に表示する件数に応じてコンテナした内容を表示します。

    MTAssetIsFirstInRow ブロックタグは、行頭にコンテナした内容を表示します。

  • MTAssets ブロックタグとあわせて使用し、画像の一覧を作成する際、MTAssets ブロックタグ に設定した assets_per_row モディファイアで設定した一行に表示する件数に応じてコンテナした内容を表示します。

    MTAssetIsLasrInRow ブロックタグは、行末にコンテナした内容を表示します。

  • ユーザーのコンテキスト内で条件分岐をおこなうブロックタグです。ユーザーが公開 (Publish) された記事を持っているか判別し、もし持っているときは true (真) となり、囲んだ内容を処理します。あわせて MTElse ブロックタグを使用できます。

  • ユーザーのコンテキスト内で条件分岐をおこなうブロックタグです。公開 (Publish) されたウェブページをユーザーが持っているか判別し、持っているときは true (真) となり、囲んだ内容を処理します。あわせて MTElse ブロックタグを使用できます。

  • ブログにサインイン中のユーザーが、表示中のプロフィールページのユーザーに注目されているか判別します。実際には、span タグに style="display:none" がついた状態で、true (真) と false (偽) の内容が両方出力され、コミュニティブログ、コミュニティ掲示板の JavaScript で表示内容が制御されます。

  • サインイン中のユーザーが、表示中のプロフィールページのユーザーを注目しているか判別します。実際には、span タグに style="display:none" がついた状態で、true (真) と false (偽) の内容が両方出力され、コミュニティブログ、コミュニティ掲示板の JavaScript で表示内容が制御されます。

  • ブログの設定でクリエイティブ・コモンズ・ライセンスを選択しているときに実行する条件タグです。クリエイティブ・コモンズ・ライセンスを選択していないときは実行されません。

  • ブログでコメントを受け付けるよう設定していて、且つ、認証方式の設定において匿名ユーザーからコメントを受け付けるよう設定している場合に、このタグで囲んだ部分を実行します。

  • カテゴリへのトラックバックを受け付ける設定のときに実行する条件タグです。

  • このタグは現在、非推奨です。MTIfCommenterTrusted タグを使用してください。

    コメント投稿者が Movable Type に登録済みの場合にのみ実行する条件タグです。

  • 対象のコメントが『保留中』の場合に真となる条件ブロックタグです。管理画面やメールテンプレートなど、実際にはコメントが公開されていない場面で利用します。

  • カスタムフィールドへの入力が必須の場合に true (真) となり、囲んだ内容を処理します。

  • 指定した条件に合致しなかったときに実行するブロックタグです。終了タグ </MTElse> は省略することができます。name や eq などのモディファイアを指定して、MTElseIf タグと同じ使い方も可能です。

  • 条件に合致しなかったときに、さらに条件式を追加するブロックタグです。ひとつ前の分岐(MTElseIf タグもしくは MTIf タグ)で使用した変数を参照する場合は、name モディファイアを省略できます。

  • このタグは現在、非推奨です。Movable Type 3.2 以降では、MTIfCommentsAccepted ブロックタグの利用を推奨しています。

    システム全体とブログの両方の設定でコメントが許可されている場合に実行します。

  • このタグは現在、非推奨です。Movable Type 3.2 以降では、MTIfPingsAccepted ブロックタグの利用を推奨しています。

    トラックバックが許可されているときに実行する条件タグです。

  • このタグは現在、非推奨です。MTIfCategory タグを使用してください。

    対象となる記事が、指定したカテゴリに属している場合に有効になる条件タグです。

  • このタグは現在、非推奨です。Movable Type 3.2 以降では、MTIfCommentsActive ブロックタグの利用を推奨しています。

    管理画面上の設定(ブログと記事の両方)でコメントを受け付ける状態になっている、もしくは、すでにコメントを受け付けていたときに実行する条件タグです。

  • 記事の続きが入力されているときに実行する条件タグです。

    Movable Type 3.3 以降では、MTIf ブロックタグを利用した方法を推奨しています。

    <mt:If tag="EntryMore">...</mt:If>
  • タグが記事に設定されているときに囲まれた内容を処理するブロックタグです。tag または name モディファイアでタグ名を指定できます。

  • 現在のカテゴリに親カテゴリが存在しないときだけ実行する条件タグです。

  • 現在のフォルダに親フォルダが存在しないときだけ実行する条件タグです。

  • 現在のカテゴリに子カテゴリが存在しないときだけ実行する条件タグです。

  • 現在のフォルダに子フォルダが存在しないときだけ実行する条件タグです。

  • 現在のカテゴリに親カテゴリが存在しているときだけ実行する条件タグです。

  • 現在のフォルダに親フォルダが存在するときだけ実行する条件タグです。

  • 現在のカテゴリにサブカテゴリが存在しているときだけ実行する条件タグです。

  • 現在のフォルダに子フォルダ存在するときだけ実行する条件タグです。

  • 設定した条件により実行内容を分けるためのブロックタグです。MTSetVar ファンクションタグや、MTSetVarBlock, MTSetVarTemplate ブロックタグで定義した変数を用いて条件文を作成します。

    このタグは条件を満たした場合に実行します。条件を満たさない場合に実行する場合は、MTUnless ブロックタグを使用するか、MTIf ブロックタグの中で MTElse, MTElseIf ブロックタグを使用します。

  • コメントの内容について、ブログのコメントポリシーの設定で一部の HTML タグの利用を許可している場合にのみ実行する条件タグです。

  • 匿名 (サインインしていない、またはアカウントを持っていない) ユーザーに、投票 (お気に入り投稿) を許可しているか判別します。匿名ユーザーによる投票の許可/拒否は、ブログの「コミュニティの設定」画面で設定できます。

    ただし、匿名ユーザーの投票を許可しても、同一 IP アドレスからの複数回投票はおこなえません。

  • 指定したアーカイブの種類でテンプレートが出力される場合にのみ実行する条件タグです。モディファイア archive_type もしくは type を指定することで、アーカイブの種類を指定できます。

  • 指定したアーカイブの種類を利用しているときに実行する条件タグです。モディファイア archive_type もしくは type を指定することで、アーカイブの種類を指定できます。

  • ブログのコンテキストにあるときに実行する条件タグです。

  • コンテキスト内に指定されたカテゴリが含まれる、または、対象となる記事が指定されたカテゴリに属している場合に実行する条件タグです。

  • コメントしたユーザーが、Movable Type に登録されているユーザーの場合にのみ実行します。

  • コメントの投稿者が、コメント先の記事の作成者の場合にのみに実行される条件タグです。

  • コメント投稿者が Movable Type に登録済みの場合にのみ実行する条件タグです。

  • コメントに親コメントがある場合にのみ実行する条件タグです。

  • コメントに返信がある場合にのみ実行する条件タグです。

  • ブログと記事の両方の設定でコメントを受け付ける設定になっている場合に表示する条件タグです。

  • 管理画面上の設定(ブログと記事の両方)でコメントを受け付ける状態になっている、もしくは、すでにコメントを受け付けていたときに実行する条件タグです。

  • ブログの設定でコメントを受け付ける設定をしているときに実行する条件タグです。

    このタグは、個々の記事のコメント受け付けの設定を無視します。記事のコメント受け付け設定の判別には MTIfCommentsAccepted ブロックタグをお使いください。

  • 受け付けたコメントについて、即時に公開しない場合に実行する条件タグです。

  • MTPagerBlock ブロックタグを利用して作成したページ分割の中で、何番目のページを表示中かを判別します。

  • テンプレートがダイナミックパブリッシングで公開する設定になっている場合に実行する条件タグです。

  • このタグは現在、非推奨です。このタグの利用に必要な JavaScript を実行すると、Web ページの表示速度が著しく低下する恐れがあります。

    記事、または、トピックに投票 (お気に入り登録) がある場合に ture (真) となり、HTML (div タグ) とそれらを扱うための JavaScript を出力します。

  • ExternalUserManagement が有効なときだけ実行する条件タグです。
  • コンテキスト内に指定されたフォルダが含まれる場合に有効になる条件タグです。

  • プロフィール画像などのアイテムのサムネイル作成に必要な画像処理ライブラリがサーバーにインストールされている場合に実行する条件タグです。

  • child モディファイアで指定したカテゴリが、現在のカテゴリの子(子孫)カテゴリにあたる場合に実行する条件タグです。

  • parent モディファイアで指定したカテゴリが、現在のカテゴリの親(祖先)カテゴリにあたる場合に実行する条件タグです。

  • ユーザーのサインイン状態によって表示内容を分けるための条件タグです。実際には、element_id モディファイアで指定した id をもとに div タグが生成され、script モディファイアで指定する JavaScript によって表示と非表示を制御します。script モディファイアで指定する JavaScript はあらかじめ用意しておく必要があります。

  • このタグは Movable Type 4.2 よりも前のバージョンでのみ利用できます。

    検索結果が複数ページにわたる場合、最後の検索結果が、環境設定ファイル (mt-config.cgi) で設定されている MaxResults の値を超えている場合にのみ実行される条件タグです。このタグは MTSearchResults ブロックタグ内で使用します。

  • 検索結果が設定した 1 ページに表示する件数より多いの場合に真となり、囲んだ内容を処理します。

    例えば 1 ページに表示する検索結果の件数と 20 件としている場合、21 件以上の検索結果のとき、囲んだ内容を処理します。

  • コメントの投稿時に電子メールアドレスの入力を必須とした場合のみに実行する条件タグです。

  • このタグは現在、非推奨です。MTIf タグを利用してください。

    以下はどちらも同じ動作になります。

    <mt:IfNonEmpty tag="EntryMore"><$mt:EntryMore$></mt:IfNonEmpty>
    <mt:If tag="EntryMore"><$mt:EntryMore$></mt:If>
    

    指定したテンプレートタグもしくは変数の値が空でないか判定する条件タグです。tag もしくは name(または var)のいずれかのモディファイアの指定は必須です。

    例えば、記事の『続き』フィールドの内容が空でないか判別する場合は、<mt:IfNonEmpty tag="EntryMore"> と記述します。

  • このタグは現在、非推奨です。MTIf タグを利用してください。

    以下はどちらも同じ動作になります。

    <mt:IfNonZero tag="BlogEntryCount"> ... </mt:IfNonZero>
    <mt:If tag="BlogEntryCount"> ... </mt:If>
    

    指定したテンプレートタグもしくは変数の値が 0(ゼロ)でないときに実行する条件タグです。

  • ブログと記事の両方の設定でトラックバックを受け付ける設定になっている場合に表示する条件タグです。

  • トラックバックが許可されているか、すでにトラックバックを受け付けているときに実行する条件タグです。

  • ブログの設定でトラックバックを受け付ける設定をしているときに実行する条件タグです。

    このタグは、個々の記事のトラックバック受け付けの設定を無視します。記事のトラックバック受け付け設定の判別には MTIfPingsAccepted ブロックタグをお使いください。

  • 受け付けたトラックバックについて、即時に公開しない場合に実行する条件タグです。

  • 検索結果が複数ページにわたっている状態で、現在表示中の検索結果ページにひとつ前のページが存在する場合に実行します。

    例えば、1 ページに表示する検索結果の件数と 20 件としているとき、検索した結果の件数が 21 件以上だと表示中のページは 2 ページ目に分割されます。その分割されたページの 2 ページ目を表示している場合に真となり、囲んだ内容を処理します。

  • ブログの設定で選択した認証方式でブログ上からサインインするとき、Movable Type へのユーザー登録を許可している場合に実行する条件タグです。

  • 認証なしユーザーまたは匿名ユーザーからのコメントを許可している場合のみに実行する条件タグです。

  • コメント投稿時に、コメント認証を必要とする場合にのみ実行する条件タグです。

  • コメントの投稿時に電子メールアドレスの入力を必須とした場合のみに実行する条件タグです。

  • テンプレートがスタティックパブリッシングで公開する設定になっている場合に実行する条件タグです。

  • 実行した検索が、記事やウェブページを対象としたキーワード検索の場合に実行する条件タグです。

  • 実行した検索が、記事やウェブページに設定されたタグを対象とした検索の場合に実行する条件タグです。

  • TypeKey(TypePad Connect)はサービスを終了しました。このタグは現在、非推奨です。

    ブログの設定で TypeKey トークンが登録されているときに実行する条件タグです。MTIfRegistrationAllowed ブロックタグと異なり、ダイナミックパブリッシングでは利用できません。

  • ウェブサイトのコンテキストにあるときに実行する条件タグです。

  • タグがウェブページに設定されているときに囲まれた内容を処理するブロックタグです。tag または name モディファイアでタグ名を指定できます。

  • 検索結果ページの総ページ数だけ繰り返し処理をおこないます。

    例えば、1 ページに表示する検索結果の件数を 10 件と設定したとき、75 件の検索結果なら 10 件表示するページは 7 ページ、5 件表示するページは 1 ページの合計 8 ページに分割されます。結果、MTPagerBlock ブロックタグで囲まれた内容は、8 回繰り返し処理されることになります。

  • 設定した条件により実行内容を分けるためのブロックタグです。MTSetVar ファンクションタグや、MTSetVarBlock, MTSetVarTemplate ブロックタグで定義した変数を用いて条件文を作成します。

    このタグは条件を満たさなかった場合に実行します。条件を満たした場合に実行する場合は、MTIf ブロックタグを使用するか、MTUnless ブロックタグの中で MTElse ブロックタグを使用します。

  • ウェブサイトのコンテキストの中で、そのウェブサイトの配下にブログを持っているかを判別します。

    ウェブサイトがひとつ以上のブログを持っているときは true (真) となり、囲んだ内容を処理します。ひとつもブログを持っていないときは false (偽) となります。このタグの中では MTElse ブロックタグを使用できます。

  • クリエイティブ・コモンズ・ライセンスを選択しているときに実行する条件タグです。クリエイティブ・コモンズ・ライセンスを選択していないときは実行されません。