MTIfでlikeを使用して複数の条件を指定する場合の注意点

Posted on
MTIfでlikeを使用して複数の条件を指定する場合の注意点

Movable Typeで条件によって実行する内容を分けるためにはMTIfというブロックタグを使用しますが、複数の条件を指定する場合は注意が必要です。

like=あいまい検索

<mt:If tag="BlogID" like="4|12">
<p>ブログIDが4と12の場合に表示されます</p>
</mt:If>

複数の条件を指定する場合にはlikeを使用して上記のように記述することでブログIDが4か12の場合にテキストが表示されるかと思いきや表示される条件はこれだけではありません。
通常のlikeはあいまい検索のためそのまま指定すると値が含まれている場合にも表示されてしまいます。
上記の記述だと4か12が含まれる場合にも表示されてしまうので例えばブログIDが14や112の場合にも表示されてしまいます。

対処法

こうした意図しない場合に表示されることを避けるためには以下のような正規表現を用いてIDを指定します。

<mt:If tag="BlogID" like="^(4|12)$">
<p>ブログIDが4と12の場合に表示されます</p>
</mt:If>

こうすることでブログIDが4、もしくは12のときのみテキストを表示することができます。

おしまい。