
「MTテンプレートに外部ファイルを埋め込む方法」で書いたとおり、カテゴリーアーカイブ・テンプレートにPHP Includeを使って外部ファイルを読み込み、各カテゴリーごとに別々のサイドメニューを表示するようにしました。
まず、各カテゴリーごとに埋め込みたいHTMLファイルを作成します。例えば、このMovable Typeのカテゴリーなら「movabletype」というカテゴリー名なので「movabletype.html」というファイル名にします。中身はこんな感じでHTMLの一部分だけ記述すればOKです。
<div class="sidetitle">Movable Typeのサイドメニュー</div>
<div class="side">ここではMovable Typeのおすすめ情報を紹介します。</div>
次にCategory Archiveテンプレート内の表示したい部分に、
<? include"../<$MTArchiveCategory$>.html";?>のように記述します。
これで<$MTArchiveCategory$>の部分が各カテゴリー名に変換されるので、それぞれ別のHTMLが呼び出されます。このとき、パスの指定はリンクするテンプレートが置いてある場所からの相対パスか、Blogで設定したLocal Site Pathからのルートパスで記述します。相対パスで指定する場合の位置関係については「FTPでMTテンプレートを更新する」を参考にしてください。(今回の例ではBlogのLocal Site Path直下に「カテゴリー名.html」をアップして、Category Archiveテンプレートは/MT_Templates/Category Archive.htmlにリンクしてあります)
以上のように、1つのCategory Archiveテンプレートにタグを埋め込むだけで、カテゴリーを切り替えるたびに異なる情報を表示することができます。ただし、このやり方には以下の条件が必要になるので、その点だけ注意してください。
- サーバがPHPに対応していること
- Category Archiveのファイル名を「BLOGの設定」→「アーカイブの設定」で<$MTCategoryLabel$>.phpと変更しておく
- カテゴリーを追加するたびに「カテゴリー名.html」をアップしなければならない(空のファイルでもOKです)
風のまにまに号

初歩的な質問ですみません。
カテゴリー名が日本語の場合、は文字化けしないのですか?
すみません。なんか文字が抜けてしまいましたね。
書きたかったのは、カテゴリー名が日本語の場合、「MTCategoryLabel」は文字化けしないのですか?
と書きたかったのです。すみません。
カテゴリー名に日本語を使っている場合は、このやり方だとHTMLのファイル名を日本語で読み込めないため、うまくいかないと思います。
CategoryLabelの代わりにCategoryIDかCategory Description(英語で入力)を使って同名のHTMLファイルを用意すれば同じことができるかもしれません。
http://wandering-wind.jp/archives/2003/1024105038.html
分かりました。
回答ありがとうございます。
初めまして。早速ですが、カテゴリーごとにテンプレートを作成してそれぞれ見栄えの違うページの作成をしたいのですが、うまく動きません。一通りの作成手順のようなものを確認したいのですが教えて頂けないでしょうか。宜しくお願いします。