以前「MT4i相互乗り入れ実験」の記事で、「カテゴリーアーカイブなんかもやろうと思えばできると思いますが」などと書いてしまってうっかりほったらかしていたのですが、標準機能ではカテゴリーアーカイブからMT4i(のカテゴリー絞込み一覧)へ「あいのり」させることはできません。
MT4i の「あいのり機能」自体は <link …>タグで指定されたページへ飛ぶだけなので「ま、できるだろう」くらいの気持ちで書いたのですが、いざやってみると落とし穴があります。
どういうことかというと、MT4iでカテゴリー選択状態の一覧を表示するためには、cat パラメータで「カテゴリーID」を渡してやる必要があるんですが、MovableType側にカテゴリーアーカイブテンプレートでカテゴリーIDを出力するタグがないんですね。
<$MTCategoryID$>というタグがあるんですが、カテゴリーアーカイブテンプレート内であっても<MTCategory>コンテナタグの中で使用しないとエラーになるのでそのままでは利用できません。
<MTCategory>と同等の<MTEntryCategories>の中で
<MTEntries lastn=”1″>
<MTEntryCategories>
<$MTCategoryID$>
</MTEntryCategories>
</MTEntries>
などとする方法もありますが、これだとカテゴリーアーカイブの先頭エントリが複数カテゴリーを持っている場合、IDを全て列挙してしまうのでうまくありません。glue=’&’とかで無理やりやっつけようと思っても、一番最初にプライマリカテゴリーのIDがリスティングされるわけではないので、簡単に対処はできません。
だとすると<$MTArchiveTitle$>でカテゴリー名を出せるので、MT4i側をいじってカテゴリー名で絞り込めるようにするという方法もなくはないですが、そんなことしたくないわけです。
ということはプラグインをこしらえてカテゴリーIDを出力できるようなタグを追加するしかないわけなんですが、Plugin Directory を探したら MTCategoryOfArchive というプラグインが見つかりました。これを使えばなんとかできそうです。
というわけで、カテゴリーアーカイブテンプレートへの<link …>タグの追加方法に関する説明を、Wiki に追記しておきました。