テンプレートのモジュール化で軽量化!

このブログもエントリー数が200を超え
リビルドにものすごい時間がかかるようになってきました。

先日、PHP化ページ分割をやったんですが、
これもやってみたかったカスタマイズの一つです。

「テンプレートのモジュール化で軽量化!」


なぜモジュール化するのかというと、再構築の際に、

1.MTのタグからHTMLコードを書き出している。
2.3コラムのページだとその分、HTMLのコーディングに時間がかかる。
3.個別ページで共通な部分があるにもかかわらず、それぞれのページですべて同じコーディングをしている。
4.カテゴリーページや個別ページで使いたいと思っても、思ったように使えないMTのタグがある。

まず最初に、自分のブログ全体を見渡して、共通部分を見極める。

↑これが一番肝心です。

私のページの場合、まず、各エントリーの下に表示している、
「blogランキング」「Web拍手」「姉妹サイトもよろしく」の部分

この部分は、すべてのエントリーで表示しているし、
特にページ毎に内容を変えているわけでもない。

これがモジュール化の一番候補。

それでいざ、モジュール化です。

※注意※
ここで説明しているモジュール化はページをPHP化していることが前提です。

そうでなければ、サーバーサイドでインクルードできません


まず、管理ページの「テンプレート」より、
「新しいインデックス・テンプレートを作る」を選択する。

そして、

「テンプレートの名前」
 →適当。自分が後でわかりやすいような名前に。(長すぎるとエラーになるよ(^^;))
「出力ファイル名」
 →適当。「individual_common.php」とか?
「このテンプレートにリンクするファイル」
 →空欄
「再構築オプション」
 →チェックをはずす。
「テンプレートの中身」
 →共通化したいソースを記述する。

↑今回のエントリーのフッター部分を共通化したいので、
 「テンプレートの中身」は、

<A HREF="http://blog.with2.net/link.php/39009"><img alt="ブログランキング:当サイトを応援してね!" src="http://www.multiburst.net/project-multiburst/images/mb-ranking-banner.gif"border="0" width="80" height="15" ALIGN="CENTER" />←クリックして応援してね!</A>
<br />
<a href="http://www.multiburst.net/cgi-bin/webclap/clap.cgi" onclick="window.open('http://www.multiburst.net/cgi-bin/webclap/clap.cgi','popup','width=500,height=200,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="記事を評価して頂けたら、拍手をいただけたらうれしいです(^^;)"src="http://www.multiburst.net/project-multiburst/images/webclapm.png" border="0" width="58" height="18" /></a>
<br />
<A HREF="http://www.multiburst.net/gachapin/" TARGET="_blank">私の姉妹サイトもよろしく!</A>

となる。

そして保存し、このテンプレートのみ再構築する

そして、個別ページテンプレートの表示したい部分に、

<!-- 左サイドバー共通モジュール ここから -->
<? include("/home/(フルパス)/individual_common.php"); ?>
<!-- 左サイドバー共通モジュール ここまで -->

を挿入する。

そして、個別ページをリビルド

これで多少は軽くなったと思います。

上記のようにして、次々に共通部分を見つけ出し、
モジュール化!!

また、私の個別ページではブログ全体のカテゴリーのツリーを表示しています

トップページでは、サブカテゴリー表示のツリー化のために、

<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>">
<MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>

のようにテンプレートに記述していました。

ところが、カテゴリーアーカイブ個別ページアーカイブ
テンプレートで同じ表記をすると、
サブカテゴリーしか表示されない。。。。(ToT)

ということで、
上記テンプレートもモジュール化しました。

これに関して他と違う点は、

「再構築オプション」
 →チェックはつけたまま。

というところです。

そうしないと、新規エントリーを書いた場合、カテゴリー名の右側
エントリー数に反映されませんから(^^;)


ということで、このブログ、
ほとんどをモジュール化してしまいました(^^;)

「すべてを再構築」しても、すさまじく早くなりました。

他にもまだまだモジュール化できるところはないかと模索中(笑)