MENU

MT_カテゴリの任意ソート

MovableTypeでカテゴリ名は五十音順でソートされる。
カテゴリに入れ子式にサブカテゴリを設定すればある程度大きな単位でのまとまりができる。
しかし、大見出しであるカテゴリは好きな並びにできないし、複数作ったサブカテゴリも任意にソートできない。

また、サブカテゴリでも同名をつけた場合、MovableType上では認識できるが、ecto上では同じ名前で違いがわからなくなってしまう。
例えばこのサイトで「Diablo_コラム」を「コラム」という名前だけにしたら、「Diary」の「コラム」との違いがecto上では解らなくなる。

かといっていちいち大見出しを受けた名前に設定するとカラムの幅が間に合わず複数行で表示されて見苦しい。

こういう場合、任意のソートの実現も含めてカテゴリ名の頭にソートしたい順番で任意の数字を振っていくやり方がよい。
例えば、このサイトだと 一番エントリ数の多い 「Diary」を頭に持ってきたい。
(現在の「Cinema」が頭にあるのは別に私が映画好きで仕方がないからという訳ではなく単に五十音順でこうなっていただけのことだ。)

その場合 01Diary 02Internet ….と 頭に数字を入れればこちらの希望通りにソートしてくれる。

でもこのやり方だと頭の数字がいかにも見苦しく、名前が長いとカラムの幅からはみ出る可能性もある。
でも、みんな同じ事で悩んでいるようで、カテゴリ名の頭にある数字だけ見えなくするプラグインがあったので導入してみた。

MovableTypeのカテゴリーソートに使える数字置換プラグイン
MTタグで表示されるカテゴリー名などの先頭部分に付けた数字を任意の文字列に置き換えるプラグインです。実験的に作ったもので、内容はPerlで置換してるだけの至って簡単なものですが、これを使うとカテゴリーの順番を自分の好きなように並び替えることが出来ます。

他のサイトでよく紹介されている「カテゴリーの説明」部分を使う方法ではないので「説明欄」もそのまま使えます。MTのカテゴリーはASCII配列順で強制的にソートされてしまうのでなんとも気分が悪い!だからといって「カテゴリーの説明」部分をつぶすのもイヤなので作ってしまいました。そー

【使用例】
カテゴリータイトル入力の際に「010)カテゴリータイトル」のように頭に数字とカッコを付ければMTは先頭の数字順に勝手に並べ替えてしまいます。この性質を利用すれば数字の付け方で並び順を自由にコントロールできます。 ただこのままでは頭に数字が付いていて見た目が悪いですね。

そこでこのプラグインは何をするかというと、

「頭の数字とカッコを違う文字に置き換える」ということをやります。
★や■などのリストマークに置き換えることも出来ますし、「空白」に置き換える指定をすれば数字を消す事も出来ます。
プラグイン自体のサイズも極限まで小さくしてますので軽快高速です。

【ダウンロード】
pmHeadChanger Ver.1.2(※MT ver.3.2ja2まで動作確認済)

Ver.1.2 up date = 2006/04/14
・半角数字と-の組み合わせ(例:123-タイトル)でも使えるようにしました。
・文字コードごとに3つの実行ファイルを用意していたのをやめて1つにしました。

【設置方法】
解凍してpm_headchanger.plをMTインストールディレクトリーのpluginsディレクトリーにアップロードして、パーミッションを「755」もしくは「705」にします。アップロード後、「システム・メニュー」の「プラグイン」ページを開いて、pmHeadChanger バージョン 1.2 が表示されていればプラグインとして認識されています。

【指定方法】テンプレートのMTタグにパラメータを追記するだけです。
例 : 頭に付けた数字部分を★印に変えたいなら

<$MTCategoryLabel$> → <$MTCategoryLabel pmhc=”★”$>

結果はこうなります↓

010)カテゴリータイトル1 → ★カテゴリータイトル1

例 : 数字部分を表示したくない場合は、pmhc=””と指定します。
カテゴリーページのタイトルとかはこの方が良いかもしれません

<$MTArchiveTitle$> → <$MTArchiveTitle pmhc=””$>

結果はこうなります↓

010)カテゴリータイトル1 → カテゴリータイトル1

※半角数字と)の組み合わせに反応します。頭の数字は何桁でもかまいません。(現バージョンでは半角数字と-にも対応しています。)

とりあえずはメインページ、カテゴリーアーカイブ、個別エントリーアーカイブ、日付アーカイブの各テンプレートのMTCategoryLabelと MTArchiveTitleのすべてにパラメータを追記すればいいと思います。手作業でやってもしれてますがエディタの検索や置換機能を使って書き換えれば楽ちんです。 最後に再構築して完了です。

一部、テンプレートのタグにパラメータを追加する必要があったので、備忘録として個々に貼り付けておく。

<MTSubCategories pmhc=””>
<MTSubCatIsFirst><ul class=”tree”></MTSubCatIsFirst>
<MTIfNonZero tag=”MTCategoryCount”>
<li class=”tree<MTSubCatIsLast>_end</MTSubCatIsLast>”><a href=”<$MTCategoryArchiveLink$>” title=”<$MTCategoryDescription$>”><MTCategoryLabel pmhc=””></a> [<$MTCategoryCount$>]
<MTElse>
<li class=”tree<MTSubCatIsLast>_end</MTSubCatIsLast>”><MTCategoryLabel pmhc=””>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth=”3″>
</li>

試験的に導入してみたが、ちゃんとDiaryが頭に来るようになった。
これさえできれば、カテゴリ分けをもっと細かく設定できる。
以前にも書いたがMovableTypeなどのブログシステムは所詮、つまるところ「データベース」なのである。
そしてデータベースで何が肝要かというと、適切なカテゴリ分けである。
適切な入れ物(カテゴリ)があって初めて様々なデータを放り込めるのである。
そうして一見、関係のなさそうなエントリを自動的に繋げて見せてくれることが次世代サイト「SKYNET’s SYNAPSE」の基本構想である。
これからエントリの多い物に関しては更に分割したりとカテゴリ分けをもう一度見直して、より使いやすいサイトを目指してゆこうと思う。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次