News
2009年2月 3日
エントリー本文
Movable Type のカテゴリーリストで特定のカテゴリーを非表示にする
Movable Type でカテゴリー一覧を表示するときに、特定のカテゴリーを非表示にするカスタマイズです。
1.基本
特定のカテゴリーを非表示にするには、次のように MTUnless タグと like モディファイアを組合わせて使用します。この例では、「cat1」「cat2」「cat3」のカテゴリーを、カテゴリー一覧に表示しません。
<mt:categories>
<mt:unless tag="CategoryLabel" like="cat1|cat2|cat3">
カテゴリーの処理
</mt:unless>
</mt:categories>
カテゴリーのフィルタリングでは、FilterCategories プラグインが有名で、上記のような書式でフィルタリングすることができますが、カテゴリー名が重複している場合は適正にフィルタリングできないという問題があります。
2.同名のカテゴリーが存在する場合
同名のカテゴリーが存在する場合は、tagモディファイア・like モディファイアとカテゴリーIDを組合わせてフィルタリングします。
<mt:categories>
<mt:unless tag="CategoryID" like="^3$||^5$|^7$">
カテゴリーの処理
</mt:unless>
</mt:categories>
likeモディファイアを使用する場合の注意点ですが、前述のサブテンプレートを、
<mt:categories>
<mt:unless tag="CategoryID" like="3|5|7">
カテゴリーの処理
</mt:unless>
</mt:categories>
と書くと、カテゴリーIDの番号が「3」「5」「7」を含むものすべてのID(「13」とか)が対象になってしまうため、正規表現の「^」と「$」を付与しています。
3.似たようなカテゴリー名が存在する場合
1項のようにカテゴリー名で判定するときも、冒頭の例では「cat1-1」なども含まれてしまうので、正規表現の「$」を付与して、
<mt:categories>
<mt:unless tag="CategoryLabel" like="cat1$|cat2$|cat3$">
カテゴリーの処理
</mt:unless>
</mt:categories>
とすると良いでしょう。
Posted by yujiro
ReTweet This!
この記事を読んだ人はこんな記事も読んでいます
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL
トラックバック
≫ MTFilterCategories from 技術ブログ
特定のカテゴリを除外するプラグイン、MTFilterCategoriesというプ... [続きを読む]
Tracked on February 3, 2009 12:22 PM
コメントする
greeting
