MTIf タグの tag モディファイアでテンプレートタグの値を直接参照する
Movalbe Type 4.1 で、MTIf タグに tag モディファイアがいつのまにか追加されていました。本エントリーで紹介します。
使い方は簡単で、tag モディファイアにテンプレートタグ(ファンクションタグ)を指定すれば、変数のように値を参照できます。
1.基本
<mt:if tag="[ファンクションタグ名]">
指定したテンプレートタグに値がある場合は true、ない場合は false を返却します。
2.サンプル
ファンクションタグの値を MTSetVarBlock タグで一旦変数に取得して判定するケース
<mt:setvarblock name="count"><$MTEntriesCount$></mt:setvarblock>
<mt:if name="count">
:
</mt:if>
は、
<mt:if tag="MTEntriesCount">
:
</mt:if>
または
<mt:if tag="EntriesCount">
:
</mt:if>
と書くことができます。
3.応用
以前紹介した、「ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版)」を少し書き換えてみます。
変更前
<MTIf name="entry_template">
<MTSetVarBlock name="entryid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="entrycategory"><$MTEntryCategory$></MTSetVarBlock>
<dt class="sidetitle">
Entries of this Category
</dt>
<dd class="side">
<ul>
<MTEntries category="$entrycategory">
<MTSetVarBlock name="currententryid"><$MTEntryID$></MTSetVarBlock>
<MTIf name="currententryid" ne="$entryid">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTIf>
</MTEntries>
</ul>
</dd>
</MTIf>
変更後
<MTIf name="entry_template">
<MTSetVarBlock name="entryid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="entrycategory"><$MTEntryCategory$></MTSetVarBlock>
<dt class="sidetitle">
Entries of this Category
</dt>
<dd class="side">
<ul>
<MTEntries category="$entrycategory">
<MTIf tag="EntryID" ne="$entryid">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTIf>
</MTEntries>
</ul>
</dd>
</MTIf>
少し見通しが良くなりました。
- Movable Type検索結果画面のMTIncludeタグでファイルを読み込む方法
- Movable Typeの月別コンテンツアーカイブリスト用テンプレート
- コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグ
- MTContentFieldタグの使い方
- Movable Typeでブログ記事一覧をカスタムフィールドでソートする方法
- MTの本文フィールドからimg要素のURLを取得する方法
- MTEntriesタグで指定した数の記事を除外して表示する方法
- Movable Typeのテンプレートタグの中でテンプレートタグを使う方法
- Movable Typeのテンプレートタグをテンプレートで生成する方法
- Movable TypeのMTEntriesタグで特定の複数ブログ記事を出力する方法
- Movable TypeでCSVデータからtable要素を作る方法
- MTIncludeタグのnameモディファイア
- Movable Type(MT)の特殊変数の入れ子
- ブロックタグにelseタグを組み込んで判定する
- Movable Type 5 におけるウェブサイトとブログの複数指定方法
書籍の方でいつもお世話になってます。
松岡ともうします。
書籍を読んでいてどうしても分からなかったことがあります。
訪問者さんがコメントを残される際、
「匿名でコメントする」
となっているのですが、
これを消すといいますか、
FC2などの無料ブログサービスのようにするには
どうすれば良いのでしょうか?
「匿名でコメントする」の意味が分かりづらいようで・・
よろしくお願いします。
>松岡さん
こんばんは。
ご質問の件ですが、「コメント投稿フォームをデフォルトで表示する&「匿名でコメントすることもできます。」の文言を修正する」が参考になれば幸いです。
それではよろしくお願い致します。
こんにちは。
書籍を参考にしています。
質問なのですが、
<mt:if tag="MTEntriesCount">
のtagの中身を複数指定することは可能でしょうか。
例えば、<mt:if tag="MTEntriesCount か MTCategoryCount">
という感じで、~か~があれば、という意味になります。
「|」での区切りも試したのですが、ダメでした。
>成海さん
こんにちは。
ご質問の件ですが、tagモディファイアに複数のタグを指定することはできないので、
それぞれを一旦、別の変数に取得してから判定する、以下のような方法でお試しください。
<$mt:EntriesCount setvar="flag1"$>
<$mt:CategoryCount setvar="flag2"$>
<mt:if test="$flag1 || $flag2">
OK
<mt:else>
NG
</mt:if>
それではよろしくお願い致します。
>tagモディファイアに複数のタグを指定することはできないので、
なるほど。
早速教えていただいたソースでトライしてみます!