MovableType
カテゴリ一覧から特定のカテゴリを除外する
カテゴリは階層が深くなるごとに大変
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>