【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が予約変数として割り当てられます。
他のテンプレート同様、条件分岐に利用することが可能です。
Discussion