[Movable Type] カテゴリーの階層化
MovableType 3.1からデフォルトの機能になったカテゴリーの階層化を3.0でやってみる。
subcategoriesプラグインで実現できる。このプラグインは3.1に同梱されているので移行してもそのまま使える(はず)。
subcategoriesのインストール (以下MovableTypeのディレクトリをMT_HOMEとする)- sub_cats.plをMT_HOME/plugins/ディレクトリに配置
- mt-sc.cgiをMT_HOME/に配置して実行権限を与える(chmod 755、700など)
- SubCats.pm と SubCategory.pmをMT_HOME/extlib/rayners/ディレクトリに配置(raynersディレクトリは新たに作成)
この状態でMovableTypeの管理画面にログインするとメインメニューでプラグインが追加されているのが確認できる。
ここでは
Football
-Serie A
-Liga Espanola
というカテゴリー階層を作ってみる。(Serie AとLiga Espanolaカテゴリーは作成済みとする)
- 親カテゴリーになるFootballカテゴリーを通常のカテゴリー作成と同様に作成する
- 管理画面のメインメニューからSubCategories v. 1.2 を選択する
- カテゴリーの選択で[Football] is the parent of [Serie A]と選択して [Set]をクリック
- 下のカテゴリーの一覧のFootballに (expand/collapse)が追加されているのが確認できる
- (expand/collapse)をクリックするとSerie Aカテゴリーが子カテゴリーとして追加されているのが確認できる(unset parent)をクリックすれば階層化を解ける
<ul> <MTSubCategories> <MTSubCatIsFirst><ul></MTSubCatIsFirst> <MTIfNonZero tag="MTCategoryCount"> <li><a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel></a>(<$MTCategoryCount$>)<MTSubCatsRecurse> <MTElse> <li><MTCategoryLabel> </MTElse> </MTIfNonZero> <MTSubCatsRecurse></li> <MTSubCatIsLast></ul></MTSubCatIsLast> </MTSubCategories> </ul>
こうしておけば親カテゴリーなどエントリーを含まないカテゴリーアーカイブへのリンクは表示されない。
個別エントリーなどでカテゴリーの階層を表示する<MTEntryCategories glue=", "> <MTParentCategories glue = "→ "> <MTIfNonZero tag="MTCategoryCount"> <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><$MTCategoryLabel$></a> <MTElse> <$MTCategoryLabel$> </MTElse> </MTIfNonZero> </MTParentCategories> </MTEntryCategories>
これでカテゴリーナビゲーションみたいなものも表示できる。
最後にサイトの再構築をして完成。
