movabletype.jp

テンプレートモジュールのキャッシュ

MTInclude ファンクションタグで読み込むテンプレートモジュール、ウィジェットの内容をキャッシュできます。

テンプレートモジュールのキャッシュ機能を使用するには、[設定] > [ブログの設定] > [公開] > [公開に関するオプション] の [Enable include caching] をチェックします。

テンプレートモジュール、ウィジェット単位のキャッシュ設定

テンプレートモジュール、ウィジェット単位でキャッシュの設定は、各テンプレート編集画面のテンプレートオプションで行います。

各テンプレートモジュール、ウィジェット編集画面の Template Options にある Module Caching の Enable caching for this module をチェックします。

キャッシュの生存時間を設定したい場合は、Expire after で時間の設定を行います。また、特定のコンテンツが新規作成または更新された場合、キャッシュをクリアするように設定したい場合は、Expire upon creation or modification of ラジオボタンをオンにして、対象となるコンテンツのチェックボックスをチェックします。

読み込むテンプレートが更新されると、キャッシュの生存時間に関係無く、キャッシュは更新されます。

テンプレートタグを使用して、読み込むテンプレートモジュールをキャッシュする

テンプレートモジュール、ウィジェット個々ではなく、ひとつのテンプート内でテンプレートモジュールを読み込む MTInclude ファンクションタグごとに、キャッシュに関する設定をしたいときは、key モディファイア ttl モディファイア、または cache モディファイアを付与します。いづれかのモディファイアが付与されると、その MTInclude ファンクションタグで読み込まれるテンプレートモジュールの内容はキャッシュされ、生存期間内であれば再構築を行わず出力ファイルに反映されます。

cache="1 | 0"

読み込むテンプレートモジュールの内容をキャッシュしたいときは、値に 1 を設定します。cache モディファイアのみを付与した場合は、キャッシュのキーは自動発行され、キャッシュの生存時間は60分に設定されます。キーや生存時間を別途設定したい場合は、key モディファイアか ttl モディファイアと併用します。

テンプレートのカスタマイズや、デザインの調整などを行っているときは、0 に設定すると良いでしょう。

key="cache_key"

キャッシュのキーを設定します。このモディファイアは ttl または cache モディファイアが付与されていれば省略可能で、省略されたときは、自動的に key が発行されます。

ttl="0"

キャッシュの生存時間(単位は秒)を設定します。このモディファイアは key または cache もディファイアが設定されていれば省略可能で省略されたときは、初期値の60分が設定されます。

永久にキャッシュを保持したいときは、値に 0 と設定します。永久にキャッシュを保持する設定は、テンプレートタグで ttl モディファイアを使用した場合に設定できます。

以下は [サンプル] というテンプレートモジュールの内容をキャッシュする各種サンプルです。

キーは自動発行、生存時間は初期値の60分に設定
<$MTInclude module="サンプル" cache="1"$>
キーは sample とし、キャッシュの生存時間は初期値の60分
<$MTInclude module="サンプル" cache="1" key="sample"$>

または

<$MTInclude module="サンプル" key="sample"$>
キーは自動発行、生存時間を10分 (600秒) と設定
<$MTInclude module="サンプル" cache="1" ttl="600"$>

または

<$MTInclude module="サンプル" ttl="600"$>
キーを sample キャッシュの生存時間を10分 (600秒) と設定
<$MTInclude module="サンプル" key="sample" ttl="600"$>

SetVar などの変数をあつかうテンプレートタグと組み合わせると、key モディファイアに変数を使った柔軟なテンプレートを作成できます。

次の例はカテゴリーごとに、関連ブログ記事のリストウィジェットの内容をキャッシュする例です。

<mt:SetVarBlock name="cache_key"><mt:EntryCategory></mt:SetVarBlock>
<mt:Include widget="Related Entries" key="$cache_key" ttl="3600" cache="1">