MTIfでtagモディファイアが使えた

Date:
2008-07-17
Category:
03_WEB

MTをCMSとして利用したサイト構築の折、投稿ブログ記事数が2つ以上の際に表示し1つ以下の際には非表示にしておきたい箇所があり、その施工に少してこずったので手順をメモに残す。

条件分岐に利用するにはMTIfかMTIfNonZeroを使う。MTIfNonZeroは指定の値がゼロか1以上かの分岐しかできないようだったので、今回使用するのはMTIfのほうになる。さてそれから、条件の指定の仕方について、オフィシャルのタグリファレンスを参照することにした。

MTIf | テンプレートタグリファレンス
http://www.movabletype.jp/documentation/appendices/tags/if.html

nameで指定した変数の値をgt="1"(1よりも大きい場合)にすればいいのかと思い、まずはMTSetVarで変数をあらたに定義し、その値にMTBlogEntryCountを指定してみた。

<MTSetVar name="hoge" value="<$MTBlogEntryCount$>"> <MTIf name="hoge" gt="1"> ブログ記事が2つ以上の場合に表示される。 </MTIf>

ところがこれが正常に動作しない。変数「hoge」にMTBlogEntryCountの値が代入されていないみたいだった。MTタグ内のvalueなどに指定する数値にはMTタグは使えないのかもしれない。

再度考慮する。MTIfNonZeroのリファレンス内に、MTSetVarを使用せずともMTBlogEntryCountの値を条件に指定することが出来るやり方があったので、それを参考にしてみる。

MTIfNonZero | テンプレートタグリファレンス
http://www.movabletype.jp/documentation/appendices/tags/ifnonzero.html

このページのモディファイアに掲載されている方法を、MTIfでも同様に試してみた。

<MTIf tag="BlogEntryCount" gt="1"> ブログ記事が2つ以上の場合に表示される。 </MTIf>

これがうまくいった。ブログ記事が2つ以上の場合に、MTIf内のコンテンツが表示されるようになった。

しかしMTの公式リファレンスは不親切というか、わかりにくい。MTIfのリファレンス内にはTagモディファイアについて指定したタグに値がある場合は true (真)。無い場合は false (偽) を返します。としか書いてない。公式に掲載されている情報は一部で、それ以外の方法については試してみるのが一番てっとりばやいのかもしれない。

Comment

Name
Mail
URL
Text

There is no comment on this entry.

Trackback

http://tplh.net/cgi-bin/mt/mt-tb.cgi/748