子宝どっとこむ

 

 もっとマニアックに

もっとマニアックにMTをこだわりたいというあなたに贈ります。

一つ目は再構築にこだわってみます

PHPで部品化に成功しますと、再構築時間が格段に短くなります。そこで、味をしめるわけですね、私と同様に(笑)

「もっと短く、もっとエレガントに」と飽くなき探究心を満足させるために、再構築にこだわってみました(といってベテランの方にはたいしたこと無いでしょうが)。

再構築をこだわる場合、基本は『すべてを再構築』をしないように設計することです。つまり、個別や月別、カテゴリー別に新規エントリーのたびに更新される情報は部品化して『include』するということです。これはもうやりました。

次にやるべきこと(やっといた方がいいかなということ)は、『インデックスと一緒に再構築』のチェックボタンを吟味した上で外せるものは外すというものです。バナー部分やフッター部分、スタイルシートなどは毎回毎回投稿のたびに変わるものではありませんのでチェックは外した方がその分だけ再構築が軽くなります。

あとは、MySQLの利用ですね。再構築も軽くなるといいますし(私は最初からMySQLですから実感していませんが)、もしかするとレンタルサーバでのディスク容量計算から除外されている可能性もありますので。ディスク容量の節約にもつながるかもです(笑)

その他、当たり前ですが、不要なファイルを消すというのがあります。よくよく見ると残骸が結構残っているものですので(特にいろいろ試した後)、一度整理してみてはいかがでしょうか。

次のマニアックなものとしては、includeを入れ子で使うというのが挙げられます。なおreadfileを使う場合は気をつけてください。

部品化したものを個別ではそのまま使い、インデックスやカテゴリー別ではもう一工夫したものを使いたい場合などに応用できます。インクルードすべき『inc』ファイルに
<?php readfile('ファイル名');?>
を入れてしまうわけです。これで応用範囲が広がりましたね。

また、私の場合、複数のブログを立ち上げているわけですが、全体で1個あればいいという部品もあるわけです。最たるものが、ブログ間をリンクしあう部分です。
メインのブロクに

<MTBlogs>
<a href="<$MTBlogURL$>" title="<$MTBlogDescription$>"><$MTBlogName$></a> [<$MTBlogEntryCount$>]<br />
</MTBlogs>

という内容の『Links.inc』を作ったとします。

これは、MT上の全てのブログへのリンクを作成してくれ、更に、横に記事数を表記してくれます。もし、個別のブロクに同様の『Links.inc』を置いてたとしたら、他のブロクへのリンクの横に記事数を表示させているため、ひとつのブログを更新したら他所のブログも更新しないと記事数の整合が取れません(私も当初はそうしていたわけですが)。しかし、それだけの理由で全てのブログをリビルドするのは美しくないですし、負荷がかかります。

ここで、ちょっとだけ話題をそらします。私の場合、以前紹介した『総合新着ページの作成方法[MTGlobalEntries]』にあるように、(マイバブルタイプ参照)コンテンツを含まない新着ページを作成しています。そして、各ブログを更新すると『新着ページ』にPingを飛ばしてリビルドさせているわけです。

ということは、『新着ページ』の『Links.inc』を更新しておけば、他の更新されていないブロクでも、表示時にその『Links.inc』を読み込むようにすることで投稿数の整合性が取れるわけです。

読み込み方ですが、

<?php readfile('新着ページの絶対パス/Links.inc');?>

とします。べつに新着ページの絶対パスでなくてもできるかもしれませんが、うちの場合はサブドメインでやっていますので、相対パスでは難しすぎます(ていうかできるのか?)。
【2005/6/21追記】
上記ファイルは子ファイルに該当しますのでreadfile関数でOKです。

また、先ほどの『インデックスと一緒に再構築』のチェックボタンを外したインデックス・テンプレートは、同様にメインのブログだけでOKの場合がありますので検討してみてください(効果は小さいかもしれませんが)。

そのほかにはスタイルシートの一本化があげられます。これはinclude(readfile)ではなくて、直接ヘッダー部分のスタイルシート指定の箇所を

<link rel="stylesheet" href="http://www.kodakara.com/styles-site.css" type="text/css" />

といった感じで指定してあげるだけです。

【2005/6/23追記】
include関数やreadfile関数は絶対パスでも相対パスでもURLでもいいようです。一般的には、<$MTBlogURL$>などを活用することが多いと思いますが、URLだとオーバーヘッド(DNSサーバーでのアドレス変換)が生じるため、これを絶対パスで行なうことも、マニアのたしなみでしょう(笑)

なお、絶対パスをあちこちに記載するとレンタルサーバを移行したときに不便かもしれません。テンプレート・モジュールで絶対パスを記載したものを作り、<MTInclude>するというのがいいかもしれません。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード