複数のカテゴリのどれかに一致するかどうかを調べる

MTQに「mt:IfCategoryでのカテゴリー複数指定」という質問がありました。
これまではプラグインで複数カテゴリを判別できていたのに、MT6にしてから動作しなくなったとのことです。
プラグインを修正することも考えられますが、Movable Typeの標準の機能だけでも実現できますので、その方法を紹介します。

Movable Typeには「MTIf」というテンプレートタグがあり、変数に対して各種の条件判断を行うことができます。
また、MTIfタグの「test」というモディファイアを使うと、Perlの条件判断の書き方をすることができます。

testモディファイアの使い方

今回の質問の例も、testモディファイアで処理することができます。
以下のような手順になります。

  1. カテゴリ名(MTCategoryLabelタグ)を、いったん変数に代入します。
  2. MTIfタグにtestモディファイアを指定して、変数の値(=カテゴリ名)を正規表現で調べます。

例えば、「オススメ」か「イチオシ」のカテゴリであるかどうかを判断するには、以下のような書き方をします。

<$mt:CategoryLabel setvar="cat_label"$>
<mt:If test="$cat_label =~ /オススメ|イチオシ/">
  「オススメ」または「イチオシ」カテゴリの場合に出力する内容
<mt:Else>
  上記以外のカテゴリの場合に出力する内容
</mt:If>

また、「オススメ」と「イチオシ」のカテゴリでないことを判断したい場合は、以下のような書き方をします。

<$mt:CategoryLabel setvar="cat_label"$>
<mt:If test="$cat_label !~ /オススメ|イチオシ/">
  「オススメ」「イチオシ」以外のカテゴリ場合に出力する内容
<mt:Else>
  「オススメ」または「イチオシ」カテゴリの場合に出力する内容
</mt:If>