Movable Type で他のブログのテンプレートモジュール・ウィジェットを利用する
Movable Type で複数ブログを作成した場合、他のブログのテンプレートモジュールやウィジェットを利用する方法です。
ここではブログBのテンプレートモジュール「hoge」を、ブログAで利用する方法を例に解説します。
1.ブログAの設定
ブログAの任意のテンプレートで、ブログBのテンプレートモジュール「hoge」を呼び出すために、MTInclude タグを記述し、blog_id モディファイアでブログBのブログIDを指定します。
...前略...
<mt:Include module="hoge" blog_id="ブログBのブログID" />
...後略...
または、MTInclude タグを MTMultiBlog タグで括り、include_blogsモディファイア(または blog_ids モディファイア)でブログBのブログIDを指定します。この場合は表示する内容によって、2項の設定が必要になります。
...前略...
<mt:MultiBlog include_blogs="ブログBのブログID">
<mt:Include module="hoge" />
</mt:MultiBlog>
...後略...
いずれの方法でも、ブログBのテンプレートモジュール「hoge」が、ブログAから呼び出せます。
2.ブログBの設定
1項で MTMultiBlog タグを使った場合、ブログBのテンプレートモジュール「hoge」を、MTMultiBlogLocalBlog タグで括ると、テンプレートモジュール「hoge」に記述されているテンプレートタグに対し、ブログAの情報が反映されます。MTMultiBlogLocalBlog タグで括らない場合は、ブログBの情報が反映されます。
<mt:MultiBlogLocalBlog>
もともとの「hoge」の内容
</mt:MultiBlogLocalBlog>
MTInclude タグに blog_id モディファイアでブログBを指定した場合は、この設定は不要です。
3.MultiBlogLocalBlog タグについて
MTMultiBlogLocalBlog タグの解説は、公式ドキュメントでは、それぞれ次のようになっています。
テンプレートタグリファレンス - MTMultiBlogLocalBlog
MTMultiBlog ブロックタグで定義している中で、一時的にローカルブログ (MTMultiBlog ブロックタグを利用して他のブログの内容を表示させたいブログ) の内容を表示したい場合に利用します。
つまり、この場合、MTInclude タグで呼び出しているブログAの情報を、ブログBのテンプレートモジュールに表示させることができる、というわけです。
ちなみに、テンプレートモジュール「hoge」を、MTMultiBlogLocalBlog タグで括らないと、例えば、テンプレートモジュール「hoge」の中に MTBlogName タグがある場合、再構築したときに MTBlogName タグは、「ブログB」と表示されます。
つまり、他のブログのテンプレートモジュールをインクルードしたときに、インクルード先のテンプレートを、
- 自ブログの情報を出力したい:MTMultiBlogLocalBlog タグで括る
- 他のブログの情報を出力したい:MTMultiBlogLocalBlog タグで括らない
という使い分けもできます。
4.その他
MTMultiBlogLocalBlog タグで括ったテンプレートモジュールやウィジェットは、自ブログではそのまま使えるようです。
次の記述では再構築NGになります。
...前略...
<mt:MultiBlog include_blogs="ブログBのブログID">
<mt:MultiBlogLocalBlog>
<mt:Include module="hoge" />
</mt:MultiBlogLocalBlog>
</mt:MultiBlog>
...後略...
MTInclude タグに identifier モディファイアを指定すれば、インデックステンプレートも呼び出せるかもしれません。
5.参考サイト
参考サイトは下記です。ありがとうございました。
- インターネット*ノート - MultiBlogプラグインでBLOG間のテンプレート共有化 【MTカスタマイズ:テンプレートの徹底したモジュール化2】
- MultiBlog 機能を利用したテンプレートモジュールの共有
- Movable Type検索結果画面のMTIncludeタグでファイルを読み込む方法
- Movable Typeの月別コンテンツアーカイブリスト用テンプレート
- コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグ
- MTContentFieldタグの使い方
- Movable Typeでブログ記事一覧をカスタムフィールドでソートする方法
- MTの本文フィールドからimg要素のURLを取得する方法
- MTEntriesタグで指定した数の記事を除外して表示する方法
- Movable Typeのテンプレートタグの中でテンプレートタグを使う方法
- Movable Typeのテンプレートタグをテンプレートで生成する方法
- Movable TypeのMTEntriesタグで特定の複数ブログ記事を出力する方法
- Movable TypeでCSVデータからtable要素を作る方法
- MTIncludeタグのnameモディファイア
- Movable Type(MT)の特殊変数の入れ子
- ブロックタグにelseタグを組み込んで判定する
- Movable Type 5 におけるウェブサイトとブログの複数指定方法