2005年6月24日

いよいよ引越5~MTのカスタマイズ(4)テンプレートモジュール化

過去の経緯はこちらへどうぞ。

今回でいよいよ最後になると思います(だといいけど)。

まだこのブログは総エントリー数400にも達していませんが「すべて再構築」をする時は結構な時間がかかります。今回も必要があって何度かやりましたが、待ち時間もさることながら、サーバーの「転送量」が気になります。負荷をかけ過ぎると、周りに迷惑になるからです。

「サーバー選び」の項に書き忘れたので後で追記しようと思いますが、この「転送量」に対する考え方も、サーバーを選ぶ際には結構重要です。以前の職場で契約していたところは、制限を超えると一定量ごとに超過料金を取られるしくみで、pvは今考えると大して多くなかったにも関わらず、毎月のように2,000円~3,000円余計に払っていました。今は制限の緩いところが多いのですが、その代わり、アクセスが集中したりして転送量が異常に増えると、追い出されたりすることもあるようです。

この「転送量」、以前の個人サイトであれば、問題になることはなかったと思います。でも、MTなどの重いブログツールの「再構築作業」はかなりの負荷をかけるようで、実際「再構築」の最中に「Internal Server Error」になったことがあります。サーバー全体の反応も遅くなる事例もあるそうです。

前置きが長くなりました。

そこで、リビルドの負荷を少しでも軽減するために、ブログの中で「エントリー」部分と切り離せる部分はなるべく切り離し、それをphpで読み込む(インクルードする)ことにしました。

参考にさせていただいたのは以下のサイト(エントリー)です。

まずはメインページ、アーカイブページ全てを見渡して、共通して使っている部分を探します。

第一候補は「ヘッダー部分」。これ、全ページ一緒ですから。私の場合、タイトルそのものに画像を使ったり使わなかったり、ファイル名を変えたりと、CSSだけでは対応できず、結局すべてのテンプレートの該当部分を書き換えておりました。

コードそのものは少ない部分ですので、試しにやってみるにはちょうどいい、と、早速チャレンジ。

ちなみに、それまでにアーカイブページは全部php化してありましたが、メインページはこのとき初めてphpにしてみました。

テンプレート設定画面を開き、「新しいインデックステンプレートを作る」をクリック。テンプレート名を「banner」として、出力ファイル名を「banner.php」とします(実際はなんでもいい)。「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックは外します。これはエントリーをあげた時に変更されるもの以外は、なるべく外しておくのが良いです。

まず、ヘッダー部分のコードを抜き出します(<div id="banner>と</div>の間の部分)。

<h1>
<a href="<$MTBlogURL$>" accesskey="1"><img src="<$MTBlogURL$>img/title.jpg" alt="passing pictures 3" border="0" style="float:none"></a>
</h1>
<p class="description"><$MTBlogDescription$></p>

これを、先程の画面の「テンプレートの中身」にペーストして保存、再構築すれば完成。

そして、「メインページ」テンプレートのその部分が入っていたところに、

<? include"banner.php";?>

の一行を入れるだけ。(アーカイブテンプレートの場合はディレクトリが違ってくるので、フルパスで入れました。)

それで再構築してみると...、見た目は元通りでした。成功。これで、ヘッダー部分を変更する時は、bannerテンプレートを変更するだけでOKになりました。

同じように「CONTENTS」部分、「月別アーカイブ」部分などをモジュール化。メインページに関しては、他に右側の「今見ているドラマ」とか「アマゾン関係のリンク」とか、フッター部分も別ファイルになっています。以前はメインページそのものを書き換えていたのですが、独立させることで、うっかり別のコードをいじってしまった、なんていう危険もなくなって一石二鳥です。思ったよりずっと簡単にできて、これは仕事でも使えるじゃん、となんだかトクした気分です。

実は、本当なら「カテゴリー内エントリー一覧」を別ファイルにして、個別アーカイブとカテゴリーアーカイブの両方に使いたかったのですが、現在カテゴリー名が日本語のせいでうまく対応できていません。だいたい、複数カテゴリも設定しているので、元々難しいんですが。まぁ、これは宿題です。

これで、少なくとも一つ一つのエントリーを保存する時にかかる時間はかなり短くなりました。各アーカイブのリビルドも、心なしか早くなったような気がします。

以上、今回の引越に関わる作業はこれで一段落です。当分、デザイン以外の大きな変更は、たぶんしないと思います。

長い間お付き合いいただき、ありがとうございました。

人気ブログランキング

コメントする

※コメントについて
どなたでもコメントいただけますが、スパム防止のため、メールアドレスを必須とさせていただいています。(ダミー可)
cookie取得が不調のため、サインインしていただけると幸いです。各種IDをお持ちでなくても、このブログに登録することができます。(「サインイン」を選んで「サインアップ」してください。)
なお、サインインしてもお名前等入力欄が表示されますが、空欄にしておいてください。