TrackBackアドレス自動選択/MTのincludeは使わない方向で

ZakimiBlog TrackBackのアドレスを自動選択

こちらのサイトを参考にして、トラックバックのURLを自動的に選択するようにした。
……と、他のサイトのテクばかり紹介するのも何なので、たまには自分で使っているテクを。

野良犬の塒のサイトは、メインページや個別ページなどの各テンプレートに、画面右のように“最近のエントリ”“最近のコメント”を表示するように仕込んでいる。こういう時は、テンプレート・モジュールに<MTEntries>などを仕込んで、それを<MTInclude module="foo">で表示するのが一般的なやり方だと思う。だが、これには問題がある。なぜなら“最新のコメント”を表示したいのに、その記事が作成された時点でのコメントしか表示されないからだ。記事を投稿し、それからコメントが入ったとしても、個別エントリーはリビルドされないので、そちらには反映されないのである。

これを回避するには個別テンプレートを動的アーカイヴにすればいいのだが、さくらインターネットなど動的アーカイヴが使えない環境ではそうはいかない。そこでMovable TypeのMTIncludeを使わず、SSIもしくはPHPのincludeを使うという手がある。

常に最新の状態にさせておきたい部分のテンプレートを作るとき、テンプレート・モジュールではなくインデックス・テンプレートにしておく。“インデックスと一緒に再構築”は当然“はい”にしておき、あとは個別エントリなどでincludeを使って読み込ませる。

SSIなら、

<!--#include virtual="/foo.html" -->

PHPなら、

<?php
include '/home/user/www/foo.html';
?>

としてやればいい。それぞれパスの指定方法が違うので注意すること。当然こちらはSSIもしくはPHPが使える環境が必要になる。「SSIは重いのでPHPにした方がいい」という説もあるが、どれくらいの差があるかは私には判らない。
他にページヘッダやフッタのテンプレートも同様にSSIもしくはPHPで読み込ませるようにすれば、個別エントリのリビルドが多少早くなるかもしれない。その分ページ読み込みは多少遅くなるかもしれない。