Movable Typeのカテゴリ一覧をソートできる「SortCategoriesプラグイン」
Movable Typeのカテゴリ一覧を任意の条件でソートできる「SortCategoriesプラグイン」を公開します。下のスクリーンショットはカテゴリの作成日で最新5件を降順ソートしたサンプルです。
1.基本
Movable Typeで階層化しないカテゴリ一覧を出力するタグとしてMTCategoriesタグが用意されています。公式サイトのドキュメントには記載がありませんが、lastnモディファイアやsort_orderモディファイアを利用することもできます。ただしタイトル以外の条件でソートすることができません。
ちなみに、MT5.1ではMTSubCategoriesタグ、MTTopLevelCategoriesタグについてsort_orderモディファイアが提供されており、任意の条件でソートすることが可能になりましたが、これらのタグは階層化表示が目的なのでlastnモディファイアを利用することはできません。
2.プラグインの機能
SortCategoriesプラグインでは、MTCategoriesタグにsort_byモディファイアを利用できる機能を追加したMTSortCategoriesブロックタグを提供します。
MTSortCategoriesブロックタグにsort_byモディファイアを与えれば、以下の条件でソートすることが可能です。sort_byモディファイアを設定していない場合はカテゴリ名でソートします。
- basename(出力ファイル名)
- created_on(作成日)
- label(カテゴリ名)
- modified_on(変更日時)
- description(説明)
これにより、例えば新規作成したカテゴリを10件表示するといったことも可能になります。
また、カテゴリの作成日時と更新日時を出力するMTCategoryDateタグとMTCategoryModifiedDateタグも併せて提供します。この2つのファンクションタグはformatモディファイアの利用が可能です。
各テンプレートタグの具体的な利用方法は4項を参照してください。
本プラグインはMT5.0/MT5.1で動作確認しています。
3.プラグインのダウンロード・インストール
下記のリンクをクリックして、プラグインアーカイブをダウンロードします。
プラグインアーカイブを展開し、中にあるSortCategoriesフォルダごと、Movable Type のアプリケーションディレクトリのpluginsディレクトリにアップロードします。
システム管理画面のプラグイン設定画面で、「SortCategories~」が表示されればインストール完了です。
プラグイン名は既出の他プラグインと重複しているので別途変更するかもしれません。
4.テンプレートのサンプル
最新10件のカテゴリを降順に表示するには、次のように記述します。
<mt:SortCategories sort_by="created_on" sort_order="descend" lastn="10">
<$mt:CategoryLabel$>
</mt:SortCategories>
ブログ記事を含まないカテゴリを表示する場合は「show_empty="1"」を追加します。
<mt:SortCategories show_empty="1" sort_by="created_on" sort_order="descend" lastn="10">
<$mt:CategoryLabel$>
</mt:SortCategories>
冒頭のスクリーンショットのように、最新5件のカテゴリ名と作成日時をリスト形式で表示するには次のようにします。
<mt:SortCategories show_empty="1" sort_by="created_on" sort_order="descend" lastn="5">
<mt:if name="__first__">
<ul>
</mt:if>
<li><mt:CategoryLabel> <$mt:CategoryCreatedDate format="%Y年%B月%e日"$>作成</li>
<mt:if name="__last__">
</ul>
</mt:if>
</mt:SortCategories>
カテゴリ名を、カテゴリの説明で昇順にソートするには次のようにします。
<mt:SortCategories sort_by="description" sort_order="ascend">
<$mt:CategoryLabel$>
</mt:SortCategories>
5.注意事項
MT5.1以上のカテゴリ一覧画面で、一括作成したカテゴリの作成日時は全く同じになるため、created_onでソートしても期待する結果になりません。
いつも参考にさせていただいております。
5.0と5.12にインストールさせていただきましたが、「エラーが発生しました」とメッセージが出てしまいました。
他のプラグインを無効にして試してみましたが、やはりエラーが出てしまいました。
ご確認いただき、修正版をご提供いただけると助かります。
度々すいません。
エラーが表示されるのは、システム管理画面のプラグイン設定画面です。
エラーが表示されてはいますが、プラグイン自体は動作していることを確認しました。
>たいすけさん
こんばんは。
ご返事大変遅くなり申し訳ありません。
ご指摘ありがとうございます。
ただ、当方では同様の事象が発生しなかったのですが、ファイルの文字コードが一部誤っていたので、修正したものに差し替えました(バージョンはそのままです)ので、ご確認願えますでしょうか。
それではよろしくお願い致します。