-
Notifications
You must be signed in to change notification settings - Fork 9
Japanese mtml guide 2 3
MultiBlog機能とは、複数のサイトやブログにまたがってブログ記事やウェブページを処理したり、ブログでサイトのテンプレートを使いまわしたい等の時に利用されます。
ここでは、このMultiBlogの利用方法の基礎を解説します。
MultiBlog機能は、MultiBlogプラグインによって実装されています。
- システムのプラグイン設定からMultiBlogを選択し、設定画面を表示させます。
- 「既定のアグリゲーションポリシー」の初期値が許可になっています。特に設定を行わなくてもインストールすると自動的に設定は「許可」になります。
- 「許可」の状態でMultiBlogが利用可能になります。
- サイトもしくはブログのプラグイン設定からMultiBlogを選択し、設定画面を表示させます。
- 「コンテンツのセキュリティ」ではブログ単位でアグリゲーションを許可するかどうかを設定します。
- システムの規定値を使用 > システムで指定された「アグリゲーションポリシー」に準じます。
- 許可 > アグリゲーションを許可します。
- 許可しない > アグリゲーションを許可しません。
- 「MTMultiBlogタグの既定の属性:」後述する、
include_blogs
exclude_blogs
で設定する対象とするブログの初期値を設定します。 - 再構築トリガー
- アグリゲーション対象となっているブログ記事やウェブページを再構築するタイミングを設定します。
- この設定が行われるとブログ記事やウェブページを公開した時になどアグリゲーション先のインデックスページが自動的に再構築されます。
- サイトの概要(1サイト、3ブログ)
ウェブサイト(id = 1) <= ここにアグリゲーション・インデックス |__ ブログA(id = 2) |__ ブログB(id = 3) |__ ブログC(id = 4)
この場合、いくつかの方法があります。
- 方法1(対象となるブログのblog_idをカンマ区切りで列挙)
<mt:Entries include_blogs="2,3,4"> # do something </mt:Entries>
- 方法2(サイトから見て子供のブログ全てを指定)
<mt:Entries include_blogs="children"> # do something </mt:Entries>
- サイトの概要(1サイト、3ブログ)
ウェブサイト(id = 1) |__ ブログA(id = 2) <= ここにアグリゲーション・インデックス |__ ブログB(id = 3) |__ ブログC(id = 4)
- 利用方法
<mt:Entries include_blogs="siblings"> # do something </mt:Entries>
- サイトの概要(1サイト、3ブログ)
ウェブサイト(id = 1) <= ここにアグリゲーション・インデックス |__ ブログA(id = 2) |__ ブログB(id = 3) |__ ブログC(id = 4)
<mt:Pages include_blogs="children"> # do something </mt:Pages>
include_blogs
に、blog_idをカンマ区切り("2,3,4")で入力してもOKです。
- サイトの概要(1サイト、3ブログ)
ウェブサイト(id = 1) <= ここにアグリゲーション・インデックス |__ ブログA(id = 2) |__ ブログB(id = 3) |__ ブログC(id = 4)
<mt:Pages include_blogs="children" include_with_website="1"> # do something </mt:Pages>
include_blogs
に、blog_idをカンマ区切り("2,3,4")で入力してもOKです。
- サイトの概要(1サイト、3ブログ)
ウェブサイト(id = 1) |__ ブログA(id = 2) <= ここにアグリゲーション・インデックス |__ ブログB(id = 3) |__ ブログC(id = 4)
<mt:Pages include_blogs="siblings" include_with_website="1"> # do something </mt:Pages>
ウェブサイト(id = 1) <= ここにアグリゲーション・インデックス ウェブサイト(id = 5) ウェブサイト(id = 6)
<mt:Websites include_websites="all"> <mt:Pages> # do something </mt:Pages> </mt:Websites>
ウェブサイト、ブログにはいろいろなウィジェットやテンプレートがありますが、それらを個別に作成し管理するのは無駄があります。
そこで、 <mt:MultiBlog>
タグを使って、他のウェブサイトやブログからウィジェットやテンプレートを共有できれば、更新漏れもありませんし便利になります。
以下のようにすると、他サイト・ブログからインクルードする事が出来るようになります。ここでは blog_id="2"
にある価格表をブログをまたいでインクルードしてみます。
<mt:MultiBlog include_blogs="2"> <mt:Include widget="価格表"> </mt:MultiBlog>
Google Analyticsのトラッキングコードなどをテンプレートモジュールとして管理する事は良くあります。
その際、複数のブログでテンプレートモジュールを共有しつつ、UAコードを別に管理したい場合があります。
そういった場合、テンプレートモジュールをサイトに作成し、ブログでインクルードする際にUAコードを個別に設定するのが効果的です。
初めに「Google Analytics」という名前のテンプレートモジュールをサイトに作成します。 <mt:Var name="google_UA" default="UA-xxxxxx-x">
が修正した部分です。値が設定されればその値を、設定されなければ default
の値 UA-xxxxxx-x
を設定します。
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', '<mt:Var name="google_UA" default="UA-xxxxxx-x">']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
以下の様にしてテンプレートをインクルードします。なお parent="1"
はMovable Type 5.1から実装されたモディファイアです。これにより親ウェブサイトからインクルード出来ます。
<mt:include parent="1" module="Google Analytics" google_UA="UA-000000-0">
以下の様に設定した値が入った状態でテンプレートがインクルードされます。
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-000000-0']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
大規模サイトを作成するのに必須なMultiBlog機能ですが、以外に扱いが難しく無いのが分かって頂けましたでしょうか?
ウェブサイトとブログの親子関係によって、企業サイトなどを構築する際は大変活躍する機能です。
- 1. ウィジェット
- 2. MTML(初級編)
- 基本タグ「値設定」「条件分岐」
- ローカルモディファイアとグローバルモディファイア
- MultiBlog
- 3. MTML(応用編)