Movable Typeのコンテンツタイプ更新を複数サイトへ反映する方法|Status Rebuildプラグイン
Movable Type で複数サイトや複数ブログを運用していると、1つのコンテンツ更新を他のサイトにも反映したい場面がよくあります。たとえば、受付状況、キャンペーン状態、共通ヘッダーの導線、期間限定バナーの表示切り替えなどです。
しかし実際には、更新元のサイトでは内容が変わっても、別サイトのヘッダーや記事アーカイブ、共通パーツにはそのまま反映されず、手動で再構築しなければならないケースが少なくありません。これが積み重なると、運用負荷が増えるだけでなく、表示のズレや更新漏れの原因にもなります。
そこで作成したのが、Movable Type 用プラグイン「Status Rebuild」です。このプラグインを使うと、指定したコンテンツタイプの更新をきっかけに、複数サイトを自動で再構築できるようになります。
1. どんな課題を解決するプラグインなのか
まず、Status Rebuild が解決するのは、「更新したのに他のサイトへ反映されない」という問題です。
Movable Type では、あるサイトでコンテンツタイプを更新しても、その影響を受ける別ブログや別サイトまで自動で再構築されるとは限りません。特に、共通ヘッダーや共通導線、期間によって表示を切り替える仕組みを複数サイトで共有している場合、このズレが起こりやすくなります。
たとえば、ある1つのコンテンツデータで「応募受付中」「投票受付中」「受付終了」といった状態を管理していても、その状態を参照している他サイトの記事ページやトップページが更新されなければ、実際の表示は古いまま残ってしまいます。
よくある困りごと
- 更新元サイトでは表示が切り替わったのに、別サイトでは切り替わらない
- 共通ヘッダーのボタンや案内文が、記事ページに反映されない
- 日時指定公開で状態は変わったのに、他サイトの表示はそのまま
- 運用担当者が都度「全再構築」を手動で行う必要がある
2. Status Rebuild とは
Status Rebuild は、Movable Type の指定したコンテンツタイプを監視し、そのコンテンツデータに変更があったときに、指定した複数サイトを自動再構築するプラグインです。
名前に「Status」と付いていますが、特定の「ステータス」という名前のコンテンツタイプ専用ではありません。監視対象はコンテンツタイプIDで指定するため、用途に合わせて任意のコンテンツタイプに使えます。
このプラグインでできること
- 対象コンテンツタイプの保存時に、複数サイトを自動再構築
- 日時指定公開の実行後に、他サイトも自動再構築
- 公開終了日による非公開後に、他サイトも自動再構築
- 管理画面のプラグイン設定から、監視対象や再構築対象を変更
- 差分があった場合だけ再構築するため、無駄な処理を抑制
3. どういう仕組みで動くのか
このプラグインは、Movable Type のプラグインコールバックを利用して動作します。手動で保存されたときは、その保存イベントをフックして再構築を実行します。また、日時指定公開や公開終了のように、run-periodic-tasks によって自動で状態が変わるケースでは、定期処理の完了後に差分を確認し、必要な場合だけ再構築を行います。
単純に毎回再構築するのではなく、対象コンテンツの状態を記録し、前回と違いがあったときだけ処理する構成にしているため、無駄な再構築を減らせるのもポイントです。
動作の流れ
- 対象コンテンツタイプのデータが更新される
- プラグインが変更を検知する
- 設定されたブログID一覧に対して再構築を実行する
- トップページ、記事ページ、共通ヘッダーなどの表示が更新される
4. 手動更新にも日時指定公開にも対応
Status Rebuild の大きな特長は、手動更新だけでなく、日時指定公開や公開終了にも対応していることです。
Movable Type では、日時指定公開や公開終了は run-periodic-tasks によって処理されます。つまり、コンテンツの状態だけは自動で変わっても、他サイト側の再構築まで自動で行われるとは限りません。
そこで Status Rebuild では、定期処理の最後に状態変化を確認し、変化があった場合のみ再構築を行うようにしています。これにより、手動運用を減らしつつ、期間切り替えにも対応できます。
対応している更新パターン
- 管理画面からの公開 / 下書き切り替え
- 管理画面からの通常保存
- 日時指定公開
- 公開終了日による自動非公開
5. 設定方法
Status Rebuild では、Movable Type のプラグイン設定画面から、監視元ブログID、監視対象コンテンツタイプID、再構築対象ブログID一覧を設定できます。
再構築対象ブログIDはカンマ区切りで指定できるため、複数サイト運用でも柔軟に設定できます。
| 設定項目 | 内容 |
|---|---|
| 監視元ブログID | 監視対象コンテンツタイプを保持しているブログ / サイトID |
| 監視対象コンテンツタイプID | 更新を監視するコンテンツタイプID |
| 再構築対象ブログID一覧 | 再構築したいブログ / サイトIDをカンマ区切りで指定 |
日時指定公開や公開終了にも対応させる場合は、run-periodic-tasks が定期実行されていることもあわせて確認しておくと安心です。
6. どんなケースに向いているか
このプラグインは、複数サイト運用の中でも、1つの管理データを複数の表示先で使っているケースに特に向いています。
- 受付状況や公開状態を複数サイトで共通利用している
- 共通ヘッダーのボタンや導線を期間によって切り替えたい
- 1つの更新をトップページ、記事ページ、子サイトへまとめて反映したい
- 日時指定公開による自動切り替えを運用したい
- 手動再構築の作業を減らしたい
7. 導入時に確認しておきたいこと
導入時には、いくつか押さえておきたいポイントがあります。
主な確認ポイント
run-periodic-tasksが cron で定期実行されているか- 監視元ブログIDとコンテンツタイプIDが正しいか
- 再構築対象ブログID一覧が正しいか
- 対象テンプレートが「手動公開」や「非公開」になっていないか
- 再構築対象が多すぎて負荷が高くなりすぎないか
また、現在の実装では「対象コンテンツタイプのデータが更新されたら再構築する」設計なので、必要に応じて「特定フィールドの変更時だけ反応させる」といったカスタマイズも考えられます。
8. まとめ
Movable Type の複数サイト運用では、更新そのものよりも、更新内容をどこまで確実に反映させるかが意外と大きな課題になります。とくに、コンテンツタイプで状態管理をしている場合、更新元だけでなく、表示先の複数サイトや記事アーカイブまで含めて整合を取ることが重要です。
Status Rebuild は、そのための仕組みとして、手動更新と日時指定公開 / 公開終了の両方に対応し、複数サイトへの反映を自動化することを目的に開発しました。手動運用を減らし、更新漏れを防ぎたいケースでは、かなり実務的な効果が期待できます。
Status Rebuildプラグイン導入をご希望の方へ
プラグインのインストール、設定、動作確認まで導入支援いたします。以下からお問合せくださいませ。
企業サイト運用担当者様、制作会社様からのご相談も歓迎しています。



