Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Blogブログ

MultiBlog 機能を利用したテンプレートモジュールの共有

Movable Type 4 より MultiBlog 機能が標準搭載されました。MultiBlog 機能は、同じ Movable Type で管理している複数のブログのデータを集めたり、ブログ記事データなどの共有が行えるため、中〜大規模なウェブサイトの構築や、目的別に作成されたブログをまとめて表示するポータルブログの作成などが簡単に行えるようになります。

また、MultiBlog 機能を利用して、テンプレートモジュールの共有も行えます。テンプレートモジュールの共有が可能になれば、テンプレートの管理が簡単になるだけではなく、新しいブログの作成時にもいくつかのステップを省略するなど、作業の効率化にもつながります。実際にサンプルを見てみましょう。

たとえば、ブログ ID が 1 のブログから「comment」という名前のテンプレートモジュールを読み込む場合、MTInclude ブロックタグに blog_id モディファイアを設定します。

<mt:Include module="comment" blog_id="1" />

このように読み込むテンプレートモジュールを指定することで、同じ Movable Type 内で管理しているどのブログのテンプレートで利用してもブログ ID が 1 のブログで管理している「comment」という名前のテンプレートモジュールを読み込みます。

さらに「comment」テンプレートモジュール内で「comment_detail」と「comment_form」というテンプレートモジュールを読み込んでいる場合、各々の MTInclude ブロックタグにも blog_id モディファイアを設定しておくと、指定したブログ ID のブログで管理しているテンプレートモジュールを読み込みます。

ブログ ID が 3 のブログのテンプレート

ブログ ID が 1 のブログで管理している、「comment」テンプレートモジュールを読み込んでいます。

<mt:Include module="comment" blog_id="1" />
ブログ ID が 1 のブログの「comment」テンプレートモジュール

同じくブログ ID 1 のブログで管理している 「comment_detail」テンプレートモジュールと、「comment_form」テンプレートモジュールを読み込んでいます。こうしておくことで「comment」テンプレートモジュールをどのブログのテンプレートで読み込んでも、その「comment」テンプレートモジュールで読み込んでいるテンプレートモジュールも、指定したブログ ID のブログより読み込まれます。

<div class="section">
  <h2>コメント</h2>
  <mt:Include module="comment_detail" blog_id="1" />
  <mt:Include module="comment_form" blog_id="1" />
</div>

同じブログ ID のテンプレートモジュールを読み込む場合、blog_id モディファイアで指定しなくても構いませんが、そのテンプレートモジュールを他のブログ ID のブログで読み込んでいる場合は、指定しておく必要があります。もし、読み込み先のブログに「ヘッダーコンテンツ」と「概要」テンプレートモジュールがあり、そのテンプレートモジュールを利用したい場合は、「ヘッダー」テンプレートモジュールで blog_id の指定をおこなう必要はありません。

MultiBlog 機能を利用した、テンプレートモジュールの共有と、MTSetVar などと MTIf などを組み合わせたテンプレート管理を組み合わせれば、効率的なテンプレート管理が行えます。

  • このエントリーをはてなブックマークに追加