📃

【Movable Type】テンプレートの予約変数について

に公開

概要

MT(PowerCMS含む、以下同)で利用できるテンプレートの予約変数について解説しています。
テンプレートの予約変数はテンプレートごとにいくつか用意されていますが、ここではよく利用するものを中心に取り上げています。

インデックステンプレート

インデックステンプレートの場合は、テンプレート作成・編集画面の「テンプレートの種類」項目で設定できます。
利用するテーマによって独自に追加されているものもありますが、ここでは公式リファレンスに掲載があるものを解説しています。
見出しの括弧内が予約変数です。

メインページ(main_index)

主にトップページ(index.html)で利用する。
複数のインデックステンプレートに対して指定可能ですが、基本的に1ブログ(1ウェブサイト)につき1テンプレートで割り当てます。

JavaScript(javascript)

JavaScriptファイルのテンプレートで利用する。

MTLinkタグを利用して、テンプレートに以下のように書くことが可能です。

<script src="<$mt:Link template='javascript'$>"></script>

ただしこの方法では同じ予約変数(この場合はjavascript)を持つファイルが複数ある場合は、そのうちのひとつしか反映されないため、筆者はMTLinkを使わずに直接書くことの方が多いです。

<script src="<$mt:WebsiteURL$>js/common.js"></script>
<script src="<$mt:WebsiteURL$>js/lib.js"></script>

スタイルシート(styles)

CSSファイルのテンプレートで利用する。

前述のJavaScript(javascript)同様、MTLinkタグを利用して、テンプレートに以下のように書くことが可能です。

<link rel="stylesheet" href="<$mt:Link template='styles'$>">

同様にこの方法では同じ予約変数(この場合はstyles)を持つファイルが複数ある場合は、そのうちのひとつしか反映されないため、筆者はこれも直接書くことの方が多いです。

<link rel="stylesheet" href="<$mt:WebsiteURL$>css/styles.css">
<link rel="stylesheet" href="<$mt:WebsiteURL$>css/home.css">

アーカイブテンプレート

アーカイブテンプレートの予約変数は、作成するテンプレートの種類とアーカイブマッピングの設定により割り当てられます。

記事アーカイブ

記事アーカイブでは、基本的に予約変数entry_archiveを利用します。

ウェブページアーカイブ

ウェブページアーカイブでは、基本的に予約変数page_archiveを利用します。

記事リストアーカイブ

記事リストアーカイブでは以下のアーカイブマッピングが設定でき、それぞれのアーカイブマッピングごとに共通または個別の予約変数が利用できます。括弧内は個別の予約変数です。

  • 日別(datebased_daily_archive
  • 週別(datebased_weekly_archive
  • 月別(datebased_monthly_archive
  • 年別(datebased_yearly_archive
  • ユーザー別(author_archive
    • 日別(author_daily_archive
    • 週別(author_weekly_archive
    • 月別(author_monthly_archive
    • 年別(author_yearly_archive
  • カテゴリ別(category_archive
    • 日別(category_daily_archive
    • 週別(category_weekly_archive
    • 月別(category_monthly_archive
    • 年別(category_yearly_archive

全記事リストアーカイブで共通、また種類ごとに共通で利用できる予約変数も用意されています。

種類 予約変数名 補足欄
全記事リストアーカイブ共通 archive_listing
日別・週別・月別・年別共通 datebased_only_archive
日別・週別・月別・年別共通 datebased_archive ユーザー別・カテゴリ別のものも含む
ユーザー別共通 author_based_archive
カテゴリ別共通 category_based_archive

なお、上記は一部を除きコンテンツタイプリストアーカイブでも共通です。詳細は後述します。

コンテンツタイプテンプレート

この記事を公開した時点ではまだ公式サイトのリファレンスに掲載されていませんが、コンテンツタイプテンプレートにも予約変数が定義されており、作成するテンプレートの種類とアーカイブマッピングの設定により割り当てられます。

なお、コンテンツタイプはMTのみの機能です。

コンテンツタイプアーカイブ

コンテンツタイプアーカイブでは、基本的に予約変数contenttype_archiveを利用します。

コンテンツタイプリストアーカイブ

コンテンツタイプリストアーカイブでは以下のアーカイブマッピングが設定でき、それぞれのアーカイブマッピングごとに共通または個別の予約変数が利用できます。括弧内は個別の予約変数です。
個別の予約変数は、記事リストアーカイブのアーカイブマッピングと同じです。

  • コンテンツタイプ 日別(datebased_daily_archive
  • コンテンツタイプ 週別(datebased_weekly_archive
  • コンテンツタイプ 月別(datebased_monthly_archive
  • コンテンツタイプ 年別(datebased_yearly_archive
  • コンテンツタイプ ユーザー別(author_archive
    • コンテンツタイプ 日別(author_daily_archive
    • コンテンツタイプ 週別(author_weekly_archive
    • コンテンツタイプ 月別(author_monthly_archive
    • コンテンツタイプ 年別(author_yearly_archive
  • コンテンツタイプ カテゴリ別(category_archive
    • コンテンツタイプ 日別(category_daily_archive
    • コンテンツタイプ 週別(category_weekly_archive
    • コンテンツタイプ 月別(category_monthly_archive
    • コンテンツタイプ 年別(category_yearly_archive

全コンテンツタイプアーカイブで共通、また種類ごとに共通で利用できる予約変数も用意されています。ただし一部は記事リストアーカイブと共通です。詳細は後述します。

種類 予約変数名 補足欄
全コンテンツタイプリストアーカイブ共通 contenttype_archive_listing
日別・週別・月別・年別共通 datebased_only_archive
日別・週別・月別・年別共通 datebased_archive ユーザー別・カテゴリ別のものも含む
ユーザー別共通 author_based_archive
カテゴリ別共通 category_set_based_archive

アーカイブタイプで重複している予約変数について

前述の通り、記事リストタイプアーカイブとコンテンツタイプリストアーカイブには、割り当てられている予約変数が重複しているものがあります。
前述のものと重複しますが、以下はその一覧です。

種類 予約変数名 補足欄
全リストアーカイブ共通 archive_listing
日別・週別・月別・年別共通 datebased_only_archive
日別・週別・月別・年別共通 datebased_archive ユーザー別・カテゴリ別のものも含む
ユーザー別共通 author_based_archive
カテゴリ別共通 category_based_archive
日別 datebased_daily_archive
週別 datebased_weekly_archive
月別 datebased_monthly_archive
年別 datebased_yearly_archive
ユーザー別 author_archive
ユーザー 日別 author_daily_archive
ユーザー 週別 author_weekly_archive
ユーザー 月別 author_monthly_archive
ユーザー 年別 author_yearly_archive
カテゴリ別 category_archive
カテゴリ 日別 category_daily_archive
カテゴリ 週別 category_weekly_archive
カテゴリ 月別 category_monthly_archive
カテゴリ年別 category_yearly_archive

これらの予約変数を使用してテンプレートの条件分岐を書く際、記事リストタイプとコンテンツタイプリストの一覧が同じデザインであればあまり問題になりませんが、デザインが違う場合は注意が必要です。

システムテンプレート

検索結果

システムテンプレートのうち、「検索結果」についてはsearch_resultsが予約変数として割り当てられます。
他のテンプレート同様、条件分岐に利用することが可能です。

公式リファレンス

MT

PowerCMS

Discussion