[ PR ]

[ PR ]

MTのカテゴリーは、ファイル名を指定しない限り、ネーミングに従って自動でファイル名が英字にて割り当てられて並んで表示されます。自分の好きな順番でカテゴリーを任意の順番に並び替える方法がいくつかありましたので、好きなもので試してみてください。ほとんどググって見つけた情報です。いつなくなるかわからないので受け渡しですが、残しておきます。

カテゴリ名をソートしやすいようにカテゴリ頭に数字追加してリネーム

MTのカテゴリの並びは、カテゴリネーミングに従ってファイル名が生成され、英数字の順序にて並び替えられます。任意の順序に並べ替えたいならば、カテゴリーの名前に頭に数字を与えてあげれば、並び替えができます。

実際の表示には、カテゴリの概要に表示させたいカテゴリ名を記述し、タグの入れ替えをすれば、ソートする必要なく任意の順番に並び替えることができます。

EX:)
カテゴリ→001カテゴリ ・概要部分→カテゴリ /お問い合わせ→008お問い合わせ ・概要部分→お問い合わせ

この方法でカテゴリの並びをかえると、概要表示ができなくなります。個人のブログなどは、この方法でかまわないと思いますが、法人などあるコンテンツに関してのサイトとしてMTを使って構築しようと考えた場合、カテゴリの概要表示は必要不可欠です。あまりオススメできませんが、一応コード紹介しておきます。

タグの変更が必要ので以下に表示しておきます。デフォルトでのタグのフォーマットで表示しておきます。

<MTIfArchiveTypeEnabled archive_type="Category">
<MTIfCategory>
<div class="module-categories module">
   <h2 class="module-header">カテゴリー</h2>
   <div class="module-content">
   <MTTopLevelCategories>
   <MTSubCatIsFirst><ul class="module-list"></MTSubCatIsFirst>
      <MTIfNonZero tag="MTCategoryCount">
      <li class="module-list-item"><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><$MTCategoryDescription$></a>
      <MTElse>
      <li class="module-list-item"><$MTCategoryDescription$>
      </MTElse>
      </MTIfNonZero>
         <MTSubCatsRecurse>
      </li>
   <MTSubCatIsLast></ul></MTSubCatIsLast>
   </MTTopLevelCategories>
   </div>
</div>
<MTIfCategory>
</MTIfArchiveTypeEnabled>

cutfirstchar.plプラグインを使って数字文字列を削除して表示

上記の概要を使っての表示が嫌な方は、こちらのプラグインがオススメです。実際に私も別のサイトにて使っています。導入も至って簡単!

cutfirstchar.plプラグインは、実際にサイト表示するときに、カテゴリ名の頭数文字を削除して表示してくれるプラグインです。削除する文字数の指定ができるので便利ですね。

cutfirstchar.plプラグインを入手し、それをpluginフォルダに入れて、タグをちょこっと追加するだけで可能です。

H.Fijimoto氏のブログにてそちらのプラグインが公開されています。H.Fijimoto氏のエントリーカテゴリを任意の順番に並べ替えるにてこのプラグインを入手してください。
cutfirstchar.txtを右クリックで【名前をつけてリンク先を保存】でファイル名をcutfirstchar.plにして保存すればOKです。

それをpluginフォルダに入れてしまいます。

タグの変更が必要のでcutfirstchar.plプラグインを使った場合のタグを以下に表示しておきます。デフォルトでのタグのフォーマットで表示しておきます。

<MTIfArchiveTypeEnabled archive_type="Category">
<MTIfCategory>
<div class="module-categories module">
   <h2 class="module-header">カテゴリー</h2>
   <div class="module-content">
   <MTTopLevelCategories>
   <MTSubCatIsFirst><ul class="module-list"></MTSubCatIsFirst>
      <MTIfNonZero tag="MTCategoryCount">
      <li class="module-list-item"><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><$MTCategoryLabel cutfirstchar="n"$></a>
      <MTElse>
      <li class="module-list-item"><$MTCategoryLabel cutfirstchar="n"$>
      </MTElse>
      </MTIfNonZero>
         <MTSubCatsRecurse>
      </li>
   <MTSubCatIsLast></ul></MTSubCatIsLast>
   </MTTopLevelCategories>
   </div>
</div>
<MTIfCategory>
</MTIfArchiveTypeEnabled>

MovableTypeのカテゴリーソートに使える数字置換プラグインpmHeadChanger Ver.1.2

このpmHeadChanger Ver.1.2プラグインは特定数字文字を置き換えるプラグインです。
カテゴリ名を→001)カテゴリにて入力し、001)の部分を指定する好きな文字の置き換えてくれます。

pmLabo.様のMovableTypeのカテゴリーソートに使える数字置換プラグインのエントリにてプラグインの入手、使用方法を確認することができます。

文字数を削除した場合の表示も可能です。その場合のコードも表示しておきます。デフォルトでのタグのフォーマットで表示しておきます。

<MTIfArchiveTypeEnabled archive_type="Category">
<MTIfCategory>
<div class="module-categories module">
   <h2 class="module-header">カテゴリー</h2>
   <div class="module-content">
   <MTTopLevelCategories>
   <MTSubCatIsFirst><ul class="module-list"></MTSubCatIsFirst>
      <MTIfNonZero tag="MTCategoryCount">
      <li class="module-list-item"><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><$MTCategoryLabel pmhc=""$></a>
      <MTElse>
      <li class="module-list-item"><$MTCategoryLabel pmhc=""$>
      </MTElse>
      </MTIfNonZero>
         <MTSubCatsRecurse>
      </li>
   <MTSubCatIsLast></ul></MTSubCatIsLast>
   </MTTopLevelCategories>
   </div>
</div>
<MTIfCategory>
</MTIfArchiveTypeEnabled>

ソートファイルを作成しソートアトリビュートを使ってカテゴリーを好きな順番に並べる

ソート機能をオリジナルで設定する方法です。MTSubCategoriesでつかえるソート方法ですが、もう少しコードを直すとMTToplevelCategoriesでもつかえるようです。

オリジナルのソートファイルを作成し、それをextlibフォルダにファイル名CatSort.pmとして保存します。
後は、そのソートのタグを追加するだけとなります。これも使えるような気がします。

実際に公開されているソートファイルは、こちらのlooselife.net様のブログMTSubCategories を使ってカテゴリーを好きな順番に並べるのエントリをご覧ください。しかし、なぜかコードに間違いがあるようなので、こちらのまけないこと投げ様のカテゴリを任意の順に並び替えるエントリからコードを拾って表示しておきます。

以下のファイルであれば、MTToplevelCategoriesでもMTSubCategoriesでもソートができてしまうようです。(試してみませんが、いつか使うときがくるので情報を残しておきます。

package CatSort;
my %category_priorities = (
'sample1' => 100,
'sample1' => 200,
'sample1' => 300,
'sample1' => 400,
'sample1' => 210,
'sample1' => 220,
'sample1' => 230,
'sample1' => 240,
'sample1' => 310,
'sample1' => 250
);
sub cat_sort ($$) {
my ($a, $b) = @_;
my $a_pri = $category_priorities{$a->label} || 1000;
my $b_pri = $category_priorities{$b->label} || 1000;
unless ($a_pri == 1000 && $b_pri == 1000) {
return $a_pri <=> $b_pri;
}
return $a_pri <=> $b_pri;
}

要は、'sample1' => 100,の部分を自分のカテゴリファイル名で指定しなおせばいいことになります。数字は小さく設定するほど最初に表示されるようになります。1000までの文字数なので、複数カテゴリを組むときは10桁ぐらいで個別設定すればいいと思います。

オリジナルファイルを設定し、extlibフォルダにファイル名CatSort.pmとして保存します。 カテゴリーリストのコンテナタグに 以下のように sort_method アトリビュートを加えるだけOKです。

<MTSubCategories sort_method="CatSort::cat_sort">

<MTTopLevelCategories sort_method="CatSort::cat_sort">

この場合のコードも表示しておきます。デフォルトでのタグのフォーマットで表示しておきます。

<MTIfArchiveTypeEnabled archive_type="Category">
<MTIfCategory>
<div class="module-categories module">
   <h2 class="module-header">カテゴリー</h2>
   <div class="module-content">
   <MTTopLevelCategories sort_method="CatSort::cat_sort">
   <MTSubCatIsFirst><ul class="module-list"></MTSubCatIsFirst>
      <MTIfNonZero tag="MTCategoryCount">
      <li class="module-list-item"><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a>
      <MTElse>
      <li class="module-list-item"><MTCategoryLabel>
      </MTElse>
      </MTIfNonZero>
         <MTSubCatsRecurse>
      </li>
   <MTSubCatIsLast></ul></MTSubCatIsLast>
   </MTTopLevelCategories>
   </div>
</div>
<MTIfCategory>
</MTIfArchiveTypeEnabled>

以上がググって探してみたカテゴリの並べ替えの方法です。結構まだありそうな気がします。とりあえず、オススメは、最後に紹介したソートアトリビュートを使って並び替えをする方法でしょうかね。それにしてもプラグインも作りたくなってしまいましたが、あまり時間がないのでいつかは・・・・

今一番欲しいプラグインは、とても簡単なもので、<$MTEntryBasename$>のファイル名を"current"とい文字に置き換えるプラグインが欲しいです。誰か作ってくれませんかね。このプラグインがあれば、スタイルシートでのcurrent表示がとても楽になるのですが。

他にもカテゴリの並べ替えの方法がありましたら、コメント、トラバにて教えて下さい。よろしくお願いします。

今回の参考サイトエントリ一覧

情報提供サイト様ありがとうございます。

[ PR ]

[ PR ]

[ PR ]

トラックバック(2)

 ココログの(あるいはMovable Typeでもそうですが)「カテゴリ」機能は 続きを読む

MTCategoriesタグやMTSubCategoriesタグで カテゴリーの... 続きを読む