derric.org

MovableType:複数のブログ間でテンプレートを共有する

| トラックバック(0)
現在、1つのドメインで、複数のブログを運用しています。
そうした場合、デザインやテンプレートをブログ間で共有したいときがあります。

そこで少し調べてみると、以下の2通りの方法があることがわかりました。
  • 1つのMTで複数のブログを管理している場合、テンプレートをグローバルで定義することで、どのブログからも利用することができる
  • 個々のテンプレートの入力画面下部にある「ファイルへのリンク」を設定することで、ソースファイルを外部ファイル化し、同じソースを使用したいテンプレートからも同じファイルへリンクすることで共有できる

それぞれの方法を順番に見ていきたいと思います。

テンプレートをグローバルで定義する

MT管理画面の「システムメニュー」からデザインを選ぶと、「テンプレート」と「ウィジェット」という項目があります。
ここで作成したテンプレートやウィジェットは、そのMTで管理されているブログならばどこからでも参照することができます。

たとえば、お気に入りの外部サイトをまとめた「ブックマークウィジェット」をグローバルで作成すると、それぞれのブログのウィジェットセット設定画面で、グローバルで定義したウィジェットが選択可能になります。

検索ボックスや購読ウィジェットなどに少し手を加えたりすることも多いと思いますので、こうして共有できるのは結構便利です。

ただし、インデックステンプレートやアーカイブテンプレートなど、定義済みのテンプレートの場合は、そのテンプレートを呼び出しているテンプレートを開いて、直接、手入力でグローバルテンプレートを指定する必要があるようです。

さらには、Atomフィードやスタイルシートのように、1つのテンプレートで完結してしまうようなテンプレートは、グローバル添付プレートをどのように利用できるのかわかりませんでした。わかる方いらっしゃいましたら良かったら教えてください。

この方法の最大のデメリットは、複数のブログを1つのMTで管理している場合にしかできよう出来ない点です。

たとえば、安全のためとか、将来的なDB容量の増大を考えて、ブログごとにDBを分けて複数のブログを運用している方もいるかと思います。そうした場合には、この方法は適用できません。

その代わり、グローバルで定義したウィジェットをウィジェットセットの設定で指定できるのは直感的でわかりやすく、管理もしやすいと感じました。

ソースファイルを外部ファイル化する

これは、個々のテンプレートの入力画面下部にある「テンプレートの設定」を開いたときに出てくる「ファイルへのリンク」を利用する方法です。この機能は何だろう、と思っていたのですが、このためだったんですね。

この「ファイルへのリンク」機能は、基本的に、すべてのテンプレートやウィジェットから利用できるようです。

これを初めて指定したときには、指定したパスにファイルが作成され、今入力されている内容が書き込まれます。次回以降は、テンプレートを開くとまずこのファイルの内容が読み込まれ、編集・保存をすると新しい内容が書き込まれます。

次に、他のブログから参照するときには、テンプレートを開いたら入力内容を空にして、同じファイルを指定して保存します。すると、外部ファイルの内容が読み込まれ、同じソースが共有されます。次回以降の動作は同じです。

少し注意したいのは、ここで指定するリンクファイルのパスは、DocumentRootからの相対パスになるということです。なので、基本的にはドメインをまたぐ共有はできないわけですが、1つのドメインを持っていて、複数のサブドメインを作ってそれぞれでブログを運用しているような場合は、ファイルシステムとしてはつながっていると思います。そうした場合には、「../」を使って最初に1個ディレクトリを上がって、そこからパスを指定すれば、ドメインを越えてファイルを共有することが可能です。

この方法の最大のメリットは、別々のMTで管理しているブログ間でテンプレートを共有できることです。たくさんのブログを運用する場合には、1つのMT、1つのDBで管理するとは限らないので、この方法は重宝すると思います。また、前者のグローバルテンプレートを定義する方法では、インデックステンプレートやアーカイブテンプレートなどの定義済みテンプレートをグローバルで運用する方法がちょっとわかりづらかったので、その意味でも、こちらの方法はおすすめです。

総評

まだこれらの機能を使い始めたばかりで何とも言えないのですが、個人的には、外部ファイル化する方法が使いやすい気がします。

ちなみに、どちらの方法を利用する場合も、共有テンプレートを更新した場合、それぞれのブログで再構築するまでは更新内容は反映されません。

以上。

トラックバック(0)

トラックバックURL: http://tech.derric.org/mt/mt/mt-tb.cgi/14

ページトップへ