複数ブログをまとめてくれるMTMultiBlog:MT3とMT4における書き方の違い
October 05, 2007
MT(Movable Type)では、1つのシステム下で複数のブログを作り出すことが可能で、これらのブログを各カテゴリーとし、1つのサイトとして運営することが可能です。これを可能にしてくれるのがMultiBlogプラグインです。MT3の時は拡張プラグインだったのですが、MT4からは純正プラグインになっているので早速試してみました。
私の手元にあるMT3.5のブログに入れているのは、バージョン 2.0のMultiBlogプラグインで(最近プラグインを入れたので)、純正プラグインとして入れられているMT4のMultiBlogプラグインもバージョンは2.0なのですが、なぜか書き方が変更されているようで、MT3の時と同じ書き方をするとエラーが出てしまいました。なので、色々と調べてみて、MT4での書き方を知ったのですが、どうも私の場合はうまくいきませんでした。ちなみに私が書いたタグは、以下のようになります。
MT3の時の書き方:
<MTMultiBlog include_blogs="ブログのID">
<$MTInclude module="モジュール名"$>
</MTMultiBlog>
MT4の時の新しい書き方(?):
<MTInclude blog_id="ブログのID" module="モジュール名">
背景としては、例えば、メインのブログをA(ブログID=1)とし、もう1つのブログをB(ブログID=2)とします。
仮のサイト名をhttp://www.example.com/とします。CSSファイルなどは
http://www.example.com/css/以下に、そして、共通で使用する画像などは、
http://www.example.com/images/以下に置いておくとします。
<ブログA>
・ブログAの絶対URL=http://www.example.com/
・モジュール名:ヘッダー
この「ヘッダー」というモジュールの中に、CSSへのパスとして以下のように書く部分があるとする。
<link rel="stylesheet" href="<$MTBlogURL$>css/styles.css"type="text/css" />
<ブログB>
・ブログBの絶対URL=http://www.example.com/blogB/
・メインページ
ブログAで作成したモジュール「ヘッダー」をブログBに読み込ませるため、
MultiBlogを使って、以下のように書くとする。
<$MTInclude blog_id="1" module="ヘッダー"$>
これでブログBのメインページを再構築すると、エラーは発生しないのですが、ブログBで出力されたメインページを見てみると、なぜかCSSへのサイトパスが切れていることで、サイトが崩れてしまっていました。
本来であれば、ブログBのメインページにおけるCSSへのパスは
http://www.example.com/css/styles.cssであるべきところが、
http://www.example.com/blogB/css/styles.cssという風になっていたのでした。
MT3の時の書き方だと再構築時にエラーが出るし、かと言って、色々なサイト上で紹介されていたMT4での新しい書き方だと、このような結果になってしまい、これはこういう仕様になってしまったのか、それとも、私の書き方が悪いのか良くわからなかったので、Movable Typeへのフィードバックを使用して早速MTさんにフィードバックしてみました。
そして教えてもらった書き方としては、以下をご連絡していただきました。
<MTMultiBlog include_blogs="ブログのID">
<MTInclude blog_id="ブログのID" module="モジュール名">
</MTMultiBlog>
MT3の時と違うのは、MTMultiBlogで括っている中のMTIncludeのところに、「blog_id="ブログのID"」を入れる、ということでしょうか。他は同じみたいです。これでやり直してみたら無事に再構築でき、CSSファイルへのリンクも正しくなり、サイトがきちんと表示されるようになりました。フィードバックしてすぐに回答してくださったMT(Six Apart)さんどうもありがとうございました。
次のエントリーで、もう1つMTMultiBlogに関連し、MTIncludeが入れ子状態になると起こる不具合をご紹介したいと思います。
”複数ブログをまとめてくれるMTMultiBlog:モジュールが入れ子状態になると起こる不具合”

