Home > Movable Type > MTのテンプレートモジュール化→軽量化

MTのテンプレートモジュール化→軽量化


このblogもエントリー数900を超えるようになりました。
以前からリビルドが思うように出来なくて500エラーの嵐。
頻繁にカスタマイズしたりskinを作ったりしてるのでリビルドエラーは致命的。
とってもとってもイライラしてストレスにもなってました。
特にエラーになってたのが個別・日別アーカイブとメインインデックス。
「すべてを再構築する」なんてどうせ途中で止まってしまうのでちびちびやってましたが全所要時間ってどれくらいなんだろう??
個別だけでもヘタしたら1時間以上かかってました。

とりあえずまずした事がmt.cfgを修正する事。
これはたいして効果がありませんでした…
次にした事がrebuild支援ツールの導入です。
mt.cfgとrebuild支援ツールについては以下のエントリーをご覧下さい。

[c*] : rebuild支援ツールでサーバーエラー回避

んで最近やってみたのがテンプレートのモジュール化です。
これはリビルドの体感速度かなりUPしたのでオススメの方法です。

<参考元>
あなたのmovabletype、重たくないですか?(テンプレートモジュール化) (CROSSBREED クロスブリード!)

以下導入方法の覚書です↓



:: 注意 ::
*モジュール化はphp必須です!
php化については↓のエントリーをご覧下さい。
[c*] : MovableTypeのphp化

*最初にモジュール化するテンプレートのバックアップを必ず取って置いてください。

まず自分のblogの構成をよく見てみてください。
各テンプレートに共通する部分はありませんか??

3カラムイメージ

ほとんどの場合ヘッダーとフッターは全テンプレート全く同じではないでしょうか?
共通する部分を抜き出して新しいインデックステンプレートを作って使いまわしちゃおうって言うのがテンプレートのモジュール化です。
モジュール化すれば今まで全ページリビルドしていたものがたった1つのテンプレートをリビルドしただけで前ページに反映されるのです。
メンテナンス性も向上しそうです!

例としてヘッダーのモジュール化をしてみます。

1.)モジュールテンプレートの作成
インデックステンプレートのヘッダー部分を抜き出します。
これはお使いのテンプレートによって違うと思うのですが

<!--ここから○○-->
..........
<!--ここまで○○-->

って感じでコメントアウトしてると思います。
この部分をコピーします。

インデックステンプレート→新しいインデックス・テンプレートを作るからヘッダーのモジュールを作成します。

テンプレートの名前 → モジュール::Header
出力ファイル名 → header.php
テンプレートの中身 → 抜き出したソース
再構築オプション → チェックを外す

保存後リビルドします。

2.)テンプレートへモジュールを組み込む
各テンプレートのヘッダー部分(抜き出した部分)をそっくり削除します。
替わりに以下を貼り付けます。

<!--ここからヘッダー-->
<? include"/★blogの絶対パス/header.php";?>
<!--ここまでヘッダー-->

保存後リビルドします。
キチンと表示されてるか確認してください。

他にもモジュール化できそうな部分を探していろいろ試す価値はあると思います。
ただRecent CommentやRecent Trackbackなどは再構築オプションのチェックを外すと手動でリビルドしないと最新の状態になりません。

まだ見直す余地はあると思いますがリビルド時間はかなり短縮されました。
エラーになる頻度も激減しました。
全く0ではないのが悲しいのですが…
モジュール化した日曜の午前中に「すべてを再構築する」をやってみたんですが15分で完了しました。
時間帯がよかったのかもしれませんがリビルド時間1/6以下になりビックリ!
なんでもっと早くやっておかなかったのかと思いました。



Home > Movable Type > MTのテンプレートモジュール化→軽量化

Search
Feeds

Page Top