« サイトをモジュール化 | ホーム | 輸入版CDが買えなくなる »
MT本文をモジュール化
またまたMTのお話。最近、MTに投稿するためにMTをいじっているようで、本末転倒気味ではあるが。今度はなんと本文をモジュール化した。
こちらのサイトを見て触発された。
http://221bbakerstreet.org/archives/2004/03/16_0008.php
http://cross-breed.com/archives/200405140036.php
また例によって行った作業のメモ。
1.新しいArchive Templeteを作る
「Templete→Create New Archive Templete(新しいアーカイブテンプレートを作る)」を行う。テンプレート名は「Entry Body」、Output File名は「entry_body.php」とした。リンクするテンプレートは空白で、内容は「<$MTEntryBody$>」のみをぽつんと放り込む。保存する。俺の場合のエントリーは、Bodyのほかに「続きを見る」と称して「Extended Entry」にも文章を書き込んでいる。なので、もう一つArchive Templeteを作る。テンプレート名は「Entry More」、Output File名は「entry_more.php」、同じくリンクするテンプレートは空白で、内容は「<$MTEntryMore$>」である。
2.アーカイブの設定
「Weblog Config→Archive Files」に行き、「Create New Archive/Templete Association」を作成する。アーカイブの種類は「Individual」、テンプレートは「Entry Body」。これをAddする。同じように「Individual」の「Entry More」も追加する。「Archive File Templete」の欄に好きな出力ファイル名を入れる。俺の場合は、「年」ディレクトリの下に/bodyというディレクトリを作り、そこにEntry Body/Moreの出力をためることにした。
Entry Body→「<?php include("<$MTArchiveDate format="%Y/body/%m%d_%H%M_body"$>.php"); ?>」
Entry More→「<?php include("<$MTArchiveDate format="%Y/body/%m%d_%H%M_more"$>.php"); ?>」
「Preffered」のラジオボタンは「Individual Entry Archive」のままでよい。
3.タグを書き換え
Main Index、Category/Date-Based/IndividualのそれぞれのArchiveの中の該当部分を書き換える。具体的には(Main Indexの場合)、
「>$MTEntryBody$>」→「<?php include("./blog/archives/<$MTArchiveDate format="%Y/body/_%m%d_%H%M_body"$>.php");?>」
「>$MTEntryMore$>」→「<?php include("./blog/archives/<$MTArchiveDate format="%Y/body/_%m%d_%H%M_more"$>.php");?>」
各Archiveの場合は、パスが変わってくると思うので、適当に修正する。
4.Rebuild
保存後全てをRebuildすると、Main Indexや各Archive Fileが、Entry BodyおよびEntry Moreに出力されたファイルを読みに行くようになっている。今まで、各ファイルごとにEntryが表示されていたものが一つのEntryを共有することになるので、当然ディスク使用量は節約できる(文章のファイルなので、驚くほどではないが)。Rebuildに関しては、全体をRebuildしても確かに速くなったような気がする。サーバ負担は確実に減っているはずである。
PHPすばらしい。当分これでやってみようと思う。
トラックバック(3)
トラックバックURL: http://keitaro.krbys.net/mt5/mt-tb.cgi/99
ファイル数が多くなって混雑するので、新規アーカイブをEntry Body一つに絞り、内容を
<$MTEntryBody$>
<MTEntryIfExtended>
<a name="more"></a>
<$MTEntryMore$>
</MTEntryIfExtended>
として、EntryBodyとEntryMoreを統合した。Main Indexにはincludeしないようにした。ファイル数もなんとなくすっきり。
自分のサイト内を回ってみたりすると、ブラウザがキャッシュしているファイルを再度表示したりすることがあるので、そういう意味では表示の体感速度は速くなっている。
はじめまして。
こちらを参考に自分も本文モジュール化に挑戦してみました。
非常に分かりやすく参考になりました。ありがとうございました。
トラックバックを2つ送ってしまったのでどちらか削除していただけないでしょうか。
御手数かけますが宜しくお願いいたします。
訪問ありがとうございます。
TBの件、了解いたしました。これからもよろしくお願いします。」
私もこれを参考に本文をモジュール化したのですが、記事を更新する時に、タイムスタンプでファイルを作成するため、ファイルを上書きせずに、新たにファイルを作成してしまいます。
そうなると、過去の記事も最新の記事になってしまいます。
この回避方法ってありますでしょうか?
こんにちは。
私もあまり詳しくないのですが、記事を更新する際、タイムスタンプ(?)("Autholized on"という部分の日時)が変わっていなければ、上書きされるのではないでしょうか?
私の場合、記事を修正する際など、特に問題とはなっておりません。話がずれていたら申し訳ありません。