Movable Typeで運用されているサイトの特徴として、たいてい「MovableType」というカテゴリーがあり、Movable Typeのノウハウがまとめられているということがあげられる。このサイトもその例にもれず、ここまでサイトを作り上げるのに使ったテクの数々を公開しようと思う。
まずはカテゴリー名を日本語等非アスキー文字にする方法。
単に名前をつけるだけなら日本語でもウルドゥー語でも入力することができるが、問題はファイル名だ。デフォルトではカテゴリーアーカイブのファイル名は “cat_カテゴリ名.html”となっていてカテゴリ名に日本語が含まれると、その部分は取り除かれる。つまりすべて日本語の場合は、“cat_.html”となって、そのようなカテゴリーが複数ある場合は同じファイル名となり上書きされてしまう。
解決方法は3通りある。
- カテゴリー名のつけかたを工夫する。カテゴリーに必ず他とかぶらないユニークなアスキー文字を含むようにする。
- ファイル名のテンプレートをカスタマイズし、カテゴリー名以外の属性(カテゴリーIDやカテゴリーの説明)をベースに名前をつけるようにする。
- カテゴリー名はアスキー文字とし、カテゴリーの説明に日本語名を書いておく。表示するときはカテゴリ名ではなくカテゴリの説明を使う。
このサイトで採用したのは2番目の方法で、IDだと無意味な連番の整数になってしまうので、カテゴリーの説明の欄にアスキー文字を指定してファイル名として使っている。余計な制約がなく、手をいれる箇所が少ないのが採用した理由だ。Category Archiveのファイル・テンプレートには以下のように指定している。
<$MTCategoryDescription$>/index.html
また Individual Archiveの方も以下のようにカテゴリーごとのディレクトリの下に作成するようにしている。
<MTEntryPrimaryCategory><$MTCategoryDescription$></MTEntryPrimaryCategory>/<$MTEntryID zero_pad="6"$>.html
MTEntryPrimaryCategory はエントリーが属する主カテゴリーのコンテキストに入るためのタグで、EntryCategoryLinksというプラグインの中に含まれる(このプラグインのおいしいところは実はほかにある。それについては別途紹介予定)。エントリーが属するカテゴリーが1つなら標準の MTEntriyCategoriesを使ってもいいが、副カテゴリーを持つ場合は結合されてしまうので、こちらの方がおすすめだ。

コメントする