ブログ記事が属するカテゴリをツリー形式で出力するプラグイン(その1)

Movable Typeでは、ブログ記事が属するカテゴリを出力するブロックタグとして、MTEntryCategoriesがあります。
ただ、このタグはカテゴリの階層構造に関係なく、ブログ記事が属するカテゴリを単純に順に出力するだけです。

そこで、MTSubCategoriesタグのように、カテゴリの階層関係を考慮した上で、ブログ記事が属するカテゴリを出力するプラグインを作りました。
今日は、基本的な使い方を解説します。

1.このプラグインでできること

このプラグインは、ブログ記事が属するカテゴリを、MTSubCategoriesタグでのカテゴリ表示と同様に、カテゴリの階層を考慮して表示することができます。

例えば、ブログに以下のようなカテゴリがあるとします。

  • 地域
    • 東京
    • 神奈川
    • 埼玉
    • 千葉
  • 部屋のタイプ
    • シングル
    • ダブル
    • ツイン
  • 設備
    • 無線LAN
    • 大浴場

また、あるブログ記事が、上記の「東京」「シングル」「ダブル」のカテゴリに属しているとします。
このときに、このプラグインを使うと、以下のような出力を得ることができます。

  • 地域
    • 東京
  • 部屋のタイプ
    • シングル
    • ダブル

また、ブログ記事が属するカテゴリの中で、特定のカテゴリから下の階層のカテゴリだけを、階層を考慮して出力することができます。
例えば、ブログ記事が属するカテゴリの中で、「部屋のタイプ」のカテゴリから下の階層のカテゴリだけを取り出して、以下のように出力することができます。

  • シングル
  • ダブル

また、特定のカテゴリから下の階層のカテゴリを出力する場合、その「特定のカテゴリ」も含めて出力することもできます。
例えば、ブログ記事が属するカテゴリの中で、「部屋のタイプ」のカテゴリと、その下の階層のカテゴリを取り出して、以下のように出力することができます。

  • 部屋のタイプ
    • シングル
    • ダブル

3.プラグインのインストール

プラグインは以下からダウンロードします。

Movable Type 5.0x用(EntrySubCategories_1_00.zip)
Movable Type 5.1x用(EntrySubCategories_1_10.zip)

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ダウンロードしたファイルを解凍すると、「EntrySubCategories」というフォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

4.テンプレートタグの書き方の例

ブログ記事が属するすべてのカテゴリを、階層を考慮して出力するには、以下のようにタグを組みます。

<mt:EntryTopLevelCategories>
  <mt:SubCatIsFirst><ul></mt:SubCatIsFirst>
    <li><$mt:CategoryLabel$>
    <$mt:EntrySubCatsRecurse$>
    </li>
  <mt:SubCatIsLast></ul></mt:SubCatIsLast>
</mt:EntryTopLevelCategories>

ブログ記事が属するカテゴリのうち、特定のカテゴリから下の階層のカテゴリだけを出力するには、上記の<mt:EntryTopLevelCategories>タグを以下のよう変えます。

<mt:EntrySubCategories category="カテゴリ名">

例えば、「部屋のタイプ」カテゴリから下の階層のカテゴリだけを出力したい場合は、<mt:EntryTopLevelCategories>タグを以下のように変えます。

<mt:EntrySubCategories category="部屋のタイプ">

また、特定のカテゴリも含めて、その下の階層のカテゴリを出力するには、<mt:EntryTopLevelCategories>タグを以下のよう変えます。

<mt:EntrySubCategories category="カテゴリ名" include_current="1">

例えば、「部屋のタイプ」カテゴリとその下の階層のカテゴリだけを出力したい場合は、<mt:EntryTopLevelCategories>タグを以下のように変えます。

<mt:EntrySubCategories category="部屋のタイプ" include_current="1">

さらに、拙作のSortCatFldプラグインまたはSuperSortプラグインをインストールしている場合、設定した並び順に沿ってカテゴリを出力することができます。
その場合、MTEntryTopLevelCategories/MTEntrySubCategoriesタグを、それぞれMTEntrySortedTopLevelCategories/MTEntrySortedSubCategoriesに書き換えます。