MT4.1以下で実現するサーバー・サイド・インクルード

MT4.15からサーバー・サイド・インクルードという機能が追加されますが、MT4.1以下でも似たような機能は実装可能です。

まず、サーバー・サイド・インクルードを利用することによるメリットはなにかというと、

サイドバーなどに常に最新の情報を表示することが出来る。

最新ニュースなどを表示する際に、サーバー・サイド・インクルードで表示しておけばインクルードファイルさえ更新してしまえば、すべてのページの情報を最新に変更することが可能です。

検索結果ページ、タグページの表示が高速化

表示の際にインクルード部分を生成する必要がなくなり、表示の高速化が図れます。

今回、実装してみたところ当サイトでは3~4倍の速度で表示されるようになりました。

再構築が高速化される

再構築の度にインクルード部分を生成する必要がなくなり、再構築のスピードがはやくなります。

ファイル容量を節約できる

共通部分をファイルとして管理する為、ファイル容量を節約することが可能です。
ページ数が非常に多い場合は効果があるかもしれません。

デメリットとしては、

インクルードの際にサーバーサーサイドでのプロセスが発生する為、若干サーバー負荷が発生します。
ただ、よほど低性能なサーバーを使っているか、アクセスが非常に多い場合以外、全く気にする必要はありません。

実装方法

まずはインクルードファイルの作成から。

ヘッダーメニューのデザインからテンプレートを選択。
インデックステンプレートを作成をクリックします。

図 実装方法1

適当なタイトル名を付けます。当サイトの場合サイドメニューをすべてインクルードファイルにしていますので、「サイドナビ」

内容は共通部分のMTの処理を記述します。

適当な出力ファイル名を付けます。当サイトの場合「navi.inc」

再構築オプションにはチェックを入れておきます。

図 実装方法2

これで、保存してから再構築を行えばサイドメニュー用のファイルnavi.incが生成されます。

生成された「navi.inc」

次に各テンプレートでこのnavi.incを取り込む処理を記述していきます。

<?php print file_get_contents("/サイトパス/navi.inc") ?>

file_get_content内にはnavi.incまでのサーバーサイド絶対パスを記述します。

これでPHPでインクルードファイルを取り込む処理は終了です。

次にphpの実行環境を設定します。

拡張子がphpなどで運用されている場合は必要ないですが、.htmlなどで運用されている場合は、トップディレクトリに以下の一文を書いた.htaccessを設置します。

AddType application/x-httpd-php .html

これで.htmlでPHPを実行することが可能です。

このままですと、xml宣言を記述している場合はエラーが出てしまいます。
xml宣言は以下のように書き換えてください。

<?= "<?xml version=\"1.0\" encoding=\"utf-8\"?>" ?>

次にCGI実行環境のテンプレートを修正していきます。

検索結果やタグ表示、コメントプレビュー画面はcgiで出力されており、phpでインクルードすることが出来ません。

cgiで出力されるページはMTIncludeタグのfileモディファイアでインクルードを行います。

<$MTInclude file="/サイトパス/navi.inc"$>

これで作業は完了です。

全再構築を行えばサーバー・サイド・インクルードで処理されるはずです。

関連エントリー

Movable Typeの再構築 高速化いろいろ
MTのカテゴリー操作 色々
MTのテンプレート開発で再構築を不要にするfastDevelopmentプラグイン
MTでopモディファイアを利用して複雑なレイアウトを行う
Movable TypeでSEO対策-Feed編-

スポンサードリンク

«[MT4LP5] MTの設置・運用に関するTIPS by 丹羽章 | メイン | MTとトラックバック»