Movable Typeの標準機能だけで「公開ページを予約更新」するシンプルな方法

こんにちは、ディレクターの八木です。 桜舞い散る4月ということで、今回は MT1年生さん向けにMovable Typeのちょっとした小ワザを紹介します。

今回のテーマはこちらです。

MTの標準機能だけで「公開ページの内容を指定日時に予約更新する」方法

しかも使う機能はとてもシンプルです。

この2つだけで実現できます。

Movable Typeのエンジニアからすると初歩的な仕組みなのですが、 案外この使い方はされていない気がします。

この記事で解決できること

「キャンペーン開始にあわせてLPページを更新したい。
 でも、キャンペーン開始は 1日の深夜0時。
 手動で更新するのはさすがに辛い……」

そんな経験、ありませんか?

この記事では
MTの標準機能だけで予約更新を実現する方法を紹介します。


よくあるケース

例えば 常設のLPページがあるとします。

https://example.com/campaign/

このページを

に合わせて内容を更新したい。

こんなとき、実務では次のような対応になりがちです。

特にLPページは静的HTMLで管理されていることも多く、 「予約更新」が難しいケースもあります。


普通はどうやるか

通常、MTの標準機能では、 公開済みページを裏で編集して差し替える仕組みがありません。

こういうときに MT使いのウェブ制作者なら、 CheckRelease, Workflow, PublicDraft といったプラグインを 思い浮かべると思います。 これらの有償プラグインは公開ページの編集・予約差し替えはもちろん、リビジョン管理もできて、承認フローも組めて 強力です。

でも「そこまで本格的なワークフローは必要ない。シンプルに、指定時刻にページ内容が差し替わればいい」というケースも多いです。


今回紹介する方法

今回の方法のポイントはこれです。

「最新の記事1件を表示するページ」をインデックステンプレートで作る

そして

という仕組みを利用します。


仕組み

仕組みはとてもシンプルです。

記事(公開日時指定)
   ┃
   ┃ 公開時間になる
   ▼
再構築:インデックステンプレート
<mt:Entries lastn="1">
   ┃
   ▼
LPページの内容が差し替わる

インデックステンプレートは 常に最新記事を出力する構造になっています。

そのため、

新しい記事が公開ステータスに変わるタイミングで、

ページの内容が自動で差し替わり

結果として

LPページの予約更新

が実現されるわけです。


実装手順(3ステップ)

① 記事でコンテンツを管理する

まずLPの内容を 記事として管理します。

話を簡単にするため、 今回は次のようなシンプルな構成にします。

・本文:LPページのHTMLをそのまま貼り付け
・カテゴリ:キャンペーン

差し替え用のLP記事は、次のように予約公開にて保存します。

公開状態:日時指定
公開日時:※キャンペーン開始日時をセット※


② インデックステンプレートを作る

次にLPページ用の インデックステンプレートを作ります。

例:

<mt:Ignore>キャンペーンLP</mt:Ignore>

<mt:Entries category="キャンペーン" lastn="1">
<mt:EntryBody>
</mt:Entries>

このテンプレートは

「キャンペーンカテゴリの最新記事」

を表示する構造になっています。

今回のポイントは lastn="1" です。 最新1件の記事だけを表示する指定です。

そのため、新しい記事が公開ステータスに変わるタイミングで、 インデックスページの内容も自動で更新されます。


③ プレビュー用テンプレートを作る

LPページはインデックステンプレートから生成するため、
記事アーカイブは必要ありません。
でもそれだと投稿画面のプレビューでページの見た目を確認できません。

そのため

プレビュー用の「記事アーカイブテンプレート」

を1つ作っておくと便利です。

このテンプレートは、「公開しない」設定 にします。

例:

<mt:Ignore>プレビュー用テンプレート</mt:Ignore>
<base href="<mt:SiteURL><mt:If tag="EntryCategory" eq="キャンペーン">campaign/</mt:If>">
<mt:EntryBody>

これで記事投稿画面から LPの見た目をプレビューできます。


向いているケース / 向いていないケース

この方法はとてもシンプルですが、 万能ではありません。

向いているケース

向いていないケース

あくまで

特定ページの内容差し替え

用途のテクニックです。


応用例

この方法はLP以外にも応用できます。

例えば

など、 日時で内容が切り替わるページに便利です。


まとめ

今回は

Movable Typeの標準機能だけで 公開ページを予約更新する方法

を紹介しました。

ポイントはこの2つです。

シンプルな方法ですが、 意外と実務では使い所がある小ワザです。

特に

などの場面では使えます。

MT1年生の方はもちろん、
ベテランの方も「そういえばこの方法あったね」と思い出していただけたら嬉しいです。