カテゴリ一覧から特定のカテゴリを除外する

カテゴリは階層が深くなるごとに大変

MT7でカテゴリセットが実装され、カテゴリを無理な階層で作成する必要がなくなりました。

しかし、それでも、階層が深くなってしまうそんなときに使う方法です。

条件が単体の場合

MTUnlessタグ のeqモディファイアで、条件に該当する場合に除外します。

<mt:CategorySets name="カテゴリセット名">
    <mt:SubCategories>
        <mt:Unless tag="CategoryBaseName" eq="cat1">
            表示したい内容
        </mt:Unless>
    </mt:SubCategories>
</mt:CategorySets>

条件が複数の場合

MTUnlessタグ のlikeモディファイアで、正規表現を使用します。

条件を「|」区切りで指定します。

<mt:CategorySets name="カテゴリセット名">
    <mt:SubCategories>
        <mt:Unless tag="CategoryBaseName" like="^(cat1|cat2)$">
            表示したい内容
        </mt:Unless>
    </mt:SubCategories>
</mt:CategorySets>

条件が不特定数の場合

MTUnlessタグ のlikeモディファイアで、正規表現を使用します。

条件の値は「hidden_cat_」などとし、除外したいカテゴリに管理画面から「hidden_cat_1」「hidden_cat_2」などと指定し使用します。

例えば、親子孫と階層があるカテゴリで、特定の親や子を表示させたくない場合に使用できます。

<mt:CategorySets name="カテゴリセット名">
    <mt:SubCategories>
        <mt:Unless tag="CategoryBaseName" like="^hidden_cat_">
            表示したい内容
        </mt:Unless>
    </mt:SubCategories>
</mt:CategorySets>