雑記

Movable TypeのPHP化とメリット

これまでHTMLで出力していたデータをすべてPHPに差し替えました。

PHP化の最大のメリットは、結果的にサイトが軽くなることです。

順を追って仕組みを解説していきましょう。

例えばGrandiosoの場合(というか、もうほとんどのサイトで)右か左サイドには、最新の記事やコメントなどを表示するサブメニューが置かれています。
こういう構造のサイトを何も考えずにMTで作るとなると、たいていの場合は「インデックス・テンプレート」、「カテゴリー・アーカイブ」、「ブログ記事アーカイブ」、「月別アーカイブ」の各テンプレートに、次のようなコードを書くわけです。
<MTEntries>
<ul> 
<li><$MTEntryDate$> </li> 
<li><a href="<$MTEntryPermaLink$>"><$MTEntryTitle$></a></li> 
</ul> 
</MTEntries> 
これで更新日とタイトルが表示されますので、あくまでコーディング上は何も間違ってはいません。
問題は、このコードを"各テンプレートに"書いてしまうことです。

各テンプレートに同じコードを書くとどういうことが起こるかといいますと、サーバーが更新日とタイトルを表示するためだけに各ページで同じ処理を繰り返さなくてはならなくなり、結果的に重くなります。
現在は、表示させたい同一の情報を各ページ個別に生成している
イメージとしては、お気に入りのサイトAを紹介したいがために、まったく同じ中身のサイトA'をわざわざ作って見せているようなものです。

だったらそのサイトAにリンクを貼った方が早いじゃない。

PHP化の手順

ってことで、ここからが本題の手順を解説していきます。 といっても、PHP化すること自体はとても簡単です。
  1. PHP化したいブログを選択
  2. [設定]→[公開]→「アーカイブの拡張子」欄を手入力でphpに書き換え、「変更を保存」
  3. すべてのファイルを再構築
  4. インデックステンプレート内のすべてのHTMLページの拡張子をphpに変更し、[保存と再構築]
  5. サーバーからHTMLファイルを削除)
これだけです。しかも手順5に関しては、ブログを立ち上げた直後にPHP化してしまえばほとんど不要というお手軽さ!

各情報をパーツ化する

例えば、更新日時と記事タイトルを表示させるのであれば、
  1. 新規にインデックステンプレートを作成する
  2. Movable Typeのエントリータグを入力
  3. 適当なファイル名(仮にupdate_information.php)をつけて[保存と再構築]
  4. パーツ化したい情報ごとに上記手順を繰り返す
ひととおりパーツ化し終えたら、次は母体となるテンプレートを開き、情報を表示させたい場所に次のコードを入力します。
パスは、サーバーのフルパスでもhttp://〜の絶対パスでも可です。
<?php include("/ユーザーID/public_html/update_information.php"); ?>
もしくは
<?php include("http://〜update_information.php"); ?>
このコードがどういう意味を持つかというと、
共通の更新情報に対して複数のページから読み込みにいく
となり、要は最新の情報を表示させるためのファイルにリンクを貼っているわけですね。
これならサーバーとしてもページごとに情報を生成する必要はないし、再構築にかかる時間も大幅に減らせるという寸法です。

いいことづくめのPHP化ですが、SEO的にはHTMLと比べると不利という噂もあります。
PHPは動的なデータなので、検索エンジンに引っかかりにくいのではないか、ということなのですが、こちらのページにも書かれているとおり、あくまでURLが静的であればあまり問題はなさそうですね。
◀ サイト全体の主な変更点について | トップページ | 大臣の誕生日 ▶