このブログなんですが、今現在、総エントリー数が66あります。ほかの人のブログと比べてもそれほどエントリー数はないですが、再構築の際にエラーが出始めています。
まあ何回か再構築をすれば無事にできるのですが、ブログ運営の快適性を考えると、あまり好ましい状態ではありません。それにどんどん記事も増えていきますからね。
というわけで、MovableTypeのPHP化で、再構築の際の負荷を少しでも減らそうと思います。以下は実際に行った、MovableTypeのPHP化手順です。
PHP化の大まかな手順
- .htaccessファイルの作成
- 共通部分の作成
- 記事本文/追記文の作成
.htaccessファイルの作成
まずはじめに、.htaccessファイルの作成です。なぜ.htaccessファイル作成するかというと、拡張子の変更が面倒だからというのが1つ、もう1つが吐き出されるファイルの冒頭にあるXML宣言のエラー回避のため、の2つがあります。
Movable TypeのPHP化というと、ほとんどの方のブログの場合、拡張子PHPでファイルを吐き出すことを前提でやっているので、あとでリダイレクトしなければいけません。まあ検索エンジンの都合に合わせないならばリダイレクト設定をしなくてもいいのですが、一応このブログはアフィリエイトに関して情報を発信していますので、その辺はないがしろにしてはいけないなと。
もう1つのXML宣言ですが、これはなくてもブラウザでは表示されるのですが、個人的にはつけたいので^^;
話は戻って、以下のソースを.htaccessファイルに記述します。ファイルの作成はMovableType管理画面のテンプレート作成から。
php_flag short_open_tag Off
AddType application/x-httpd-php .php .html
上のphp_flag~というのが冒頭のXML宣言でエラーが出ないようにするため、AddType application~というのが拡張子htmlをphpとして動作させるものです。
共通部分のPHP化
次は共通部分のPHP化です。これは主にヘッダーやフッター、サイドバー、記事本文などです。記事本文については後ほど解説しますので、ここではヘッダーやフッターについて解説します。
MovableTypeの機能である、テンプレートのモジュール機能を使ったことのある方はわかると思いますが、あれのPHP版だと思ってもらうとわかりやすいですね。
MovableType管理画面のテンプレート作成から、共通部分のファイルを新規作成します。出力するファイル名は適当でもいいですが、何か適当なディレクトリにまとめておくといいでしょう。
例
テンプレート名:「ヘッダー」 出力ファイル名:「module/header.php」、記述するソースコードが以下の場合。
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
インデックスファイルやアーカイブファイル類の該当する個所を
<?php include('<$MTBlogURL$>module/header.php');?>
に置き換えます。以降は、共通化したい個所を同様にしていきます。
本文/追記のPHP化
PHP化のメインといっても過言ではないのが、これらのPHP化です。これらをPHP化するとアホみたいに再構築が速くなるので、ぜひやっておきましょう。
やり方としてはこちらを見てもらえばわかりやすいと思います。大まかな手順は以下のとおり。
- アーカイブテンプレートに、本文だけのものと追記だけのものを作成
- 「設定」⇒「公開」の「アーカイブマッピング」で、作成した本文だけのものと追記だけのものの出力先を決定する
- <$MTEntryBody$>と<$MTEntryMore$>を、PHPのincudeを使っておきかえる
- 再構築
アーカイブマッピングの設定項目が出現していない人は、まず詳細モードに切り替えてから行いましょう。
出力ファイルの規則を考える
MovableTypeは、出力ファイルを変更することができますが、これについてちょっと考えてみます。
当ブログでは個別エントリーのアーカイブマッピングを
%c/%y%m%d%h%n%s.html
のように設定しています。時系列によるファイル出力ですね。
ほかには新規エントリーの投稿画面で出力ファイルを設定する方法や、各種エントリーのエントリーIDを元に出力する方法、日本語で出力する方法もあります。
どれがいいとは一概に言えませんが、私が使い分ける方法としては、ブログとして使う場合は時系列で、CMSとして使う場合は個別エントリーの出力ファイルから設定しています。
最近は日本語で出力する方法が情報商材で出ていますが、おそらくアーカイブマッピングで設定が可能だと思います。
この度は、「まる儲け」リンクに参加してもらい、ありがとうございます。リンクの性質上、ご参加いただきましたブログの皆様にはロゴを貼ってもらっています。これはお約束とさせていただいておりますので、よろしくお願いします。また、もしロゴを貼っていただけないようならば、削除対象とさせていただくことになりますので、よろしくお願いいたします。