Movable Type 備忘録

 MTIncludeについて

MovableType(ムーバブルタイプ)のテンプレートをカスタマイズする上で、MTIncludeはよく使われますね。 でも、このMTIncludeは使えそうで使えないことがあります。

たとえば、以前カテゴリごとに異なるデザインにしてみようとして以下のような記述をしたことがあります。

  1. <MTInclude module="Category: <$MTArchiveTitle decode_html="1" remove_html="1"$>">

上記はカテゴリ名に該当するモジュール名を読み込むよう指定してるつもりですが、これだとエラーしてしまいます。
なぜかというと、<MTInclude>タグにはMTタグを指定することができなかったからです。

カテゴリ名に該当するモジュールをインクルードしたい場合には、<MTSwitch>タグを使用して以下のように指定するか、PHP化している人はPHPのスクリプトでカテゴリごとに異なるテンプレートにすることができます。

  1. <MTSwitch value="[MTArchiveTitle]">
  2.     <MTSwCase value="●●●"><MTInclude module="Category: ●●●"></MTSwCase>
  3.     <MTSwCase value="▲▲▲"><MTInclude module="Category: ▲▲▲"></MTSwCase>
  4.     <MTSwCase value="■■■"><MTInclude module="Category: ■■■"></MTSwCase>
  5. </MTSwitch>

これってあまりスマートじゃありませんがメリットはあります。 たとえば、上記の●●●だけ個別のテンプレートを使用して、それ以外のカテゴリは同じテンプレートを使用したい…というような場合、以下のようにすれば融通を利かせることができます。

  1. <MTSwitch value="[MTArchiveTitle]">
  2.     <!-- ▼カテゴリ●●●用のテンプレート▼ -->
  3.     <MTSwCase value="●●●"><MTInclude module="Category: ●●●"></MTSwCase>
  4.     <!-- ▼それ以外のカテゴリ用テンプレート▼ -->
  5.     <MTSwDefault><$MTInclude module="Category: Default"$></MTSwDefault>
  6. </MTSwitch>

お気づきの人もいるかと思いますが、わたしのサイトではカテゴリによっては異なるテンプレートを使用しているページがあります。
わたしの場合はPHPを使って異なるテンプレートを使用するようにしていますが、今回は<MTInclude>タグにMTタグを併用してカテゴリごとに異なるテンプレートを適用するカスタマイズを紹介してみようと思います。

<MTInclude>タグにMTタグを併用するには、MTIncludePlusプラグインを使用します。 <MTInclude>タグには、ファイル名を指定する方法とモジュール名を指定する方法の2種類を使用できますね。 このMTIncludePlusプラグインは、<MTInclude>タグにMTタグを使用できるように拡張してくれています。

▼MTIncludePlusプラグインの入手はこちらから▼
http://www.nonplus.net/software/mt/MTIncludePlus.htm

カスタマイズ

まずプラグインをインストールします。
上記URLから圧縮ファイルをダウンロードして、適当なフォルダに展開します。 そして、いつものようにmt/plugins/ディレクトリの中にアップロードしてください。

次にテンプレートを修正します。
たとえば、先ほどのカテゴリごとにテンプレートを切り替えたい場合には以下のようになります。

  1. <MTIncludeModule>"Category: <$MTArchiveTitle decode_html="1" remove_html="1"$>"</MTIncludeModule>

上記例ではモジュール名称を指定しています。 ファイル名を指定したい場合には以下のようかんじになります。

  1. <MTIncludeFile>/category_●●●.html</MTIncludeFile>

ファイル名で指定する場合には、ローカルパスで指定する必要があります。 URLではありませんので気をつけてください。
URLで指定したい場合には以下のようなかんじでできそうです。

  1. <MTIncludeURL><$MTBlogArchiveURL$>category_●●●.html</MTIncludeURL>

あとは保存して再構築すれば、カテゴリごとに異なるテンプレートを作ることができます。 これ以外でもいろいろ用途はあると思います。 MTIncludePlusプラグインはけっこう使えそうなかんじ アフィリエイトやられてる人なんかは、このプラグイン使ってバナーを切り替えたりしてもいいかも、ですね。

では、SEE YOU。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

 

コメント用フィード