Movable TypeでブログIDを変数で管理する

Movable Typeのテンプレート内でブログIDなどを指定することがありますが、同じコードでテスト環境を用意しようとすると、テスト環境と本番環境でIDが異なり管理が煩雑になることがあります。
今回はブログIDを1つのテンプレートで管理して、テスト環境と本番環境を構築する際にも極力コードを揃えられるようにしてみます。

サンプルコード

今回は以下のようなサイトで試してみます。

  • 親サイト(ブログID:1)
    • 子サイト(ブログID:2)

親サイトで子サイトの記事一覧を表示する場合、以下のように記述します。

<mt:Entries include_blogs="2">
  <p><mt:EntryTitle></p>
</mt:Entries>

次に変数で管理できるようにしてみます。
親サイトで「config」という名前のテンプレートモジュールを作成してみます。

config

<mt:SetVar name="SITEID" value="1">
<mt:SetVar name="BLOGID" value="2">

親サイトのブログIDを「SITEID」、子サイトのブログIDを「BLOGID」という変数に格納しました。
次にこのテンプレートモジュールを使用するテンプレート内でインクルードします。

<mt:Include module="config">

これで変数を使用できるようになったので、include_blogsの値を変数で指定します。

<mt:Entries include_blogs="$BLOGID">
  <p><mt:EntryTitle></p>
</mt:Entries>

これで親サイトで子サイトの記事一覧を表示することができました。

親サイトから子サイトのコンテンツタイプを表示する場合も同様です。
変数管理する前は以下のような記述になります。

<mt:Contents include_sites="2" content_type="コンテンツタイプ名">
  <p><mt:ContentLabel></p>
</mt:Contents>

変数設定後はinclude_sitesの値を変数で指定できます。

<mt:Contents include_sites="$BLOGID" content_type="コンテンツタイプ名">
  <p><mt:ContentLabel></p>
</mt:Contents>

注意点として、以下のようにfieldでコンテンツフィールドのユニークIDを使う場合、変数管理するのが難しそうな印象です。

<mt:Contents include_sites="2" content_type="コンテンツタイプ名" field:d387a1cb2cea2994397c5cc7b821e801755642e4="1">
  <p><mt:ContentLabel></p>
</mt:Contents>

 

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

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930