参考:Movable Type 備忘録 - MovableTypeをPHP化する
http://bizcaz.com/archives/2006/02/08-225445.php
十五夜お月様:PHPモジュール化!ブログ記事部分を外部ファイルにする
http://www.15ya.net/15ya/2009/05/18-122022.php
エントリページのファイル名変更
通常、ブログを新規作成した場合、投稿したエントリのファイル名には、エントリのタイトル名の先頭から30文字分が使用されます。
すべて英数字によるエントリ・タイトルならそのまま使用されますが、日本語の場合だとpost.htmlなどのように代替のファイル名が割り付けられてしまいます。
そこで、2006/02/08-225445.phpというように、投稿日時からファイル名が作成されるように変更しました。
これをやるメリットは以下の通りです。
事前にPHP化が完了している事を前提にしてます。
ブログの設定ー全般のアーカイブ設定でファイルの拡張子をphpに設定
デザイン・インデックス・テンプレートで各テンプレートの出力ファイル名の拡張子がphpに変更されている。
サクラサーバの場合、mt-config.cgiで
以下のコメントアウトの行頭にある#を削除する
HTMLUmask 0022
DirUmask 0022
UploadUmask 0022
DBUmask 0022
HTMLPerms 0777 又は 0755
UploadPerms 0777 又は 0755
PHP化前のhtmlの拡張子のファイル削除
うまくいかない場合は、日付フォルダーとカテゴリーフォルダーを削除後再構築を行ってください。そうすると上記の属性変更が有効になります。
1.必ずユニークな(重複しない)ファイル名とすることができます。
2.いつか、サーバお引越ししたとしても、今までと同じURLにすることができます。
デフォルトのままだと、もしかしたら、ファイル名が変更になって、今までと同じURLでなくなるかも、です。
そんな理由から、わたしはエントリの投稿日時でファイル名を割り当てるようにしています。
具体的には以下のように行います。
1.必ずユニークな(重複しない)ファイル名とすることができます。
2.いつか、サーバお引越ししたとしても、今までと同じURLにすることができます。
デフォルトのままだと、もしかしたら、ファイル名が変更になって、今までと同じURLでなくなるかも、です。
そんな理由から、わたしはエントリの投稿日時でファイル名を割り当てるようにしています。
具体的には以下のように行います。
先ほどの「アーカイブの拡張子」を変更した、同じ画面の下の方に各アーカイブの一覧が表示されています。
その中の「エントリー・アーカイブ」のドロップダウンリストから「カスタマイズ」を選択して、以下のように変更してください。
変更前 %y/%m/%f
変更後 %y/%m/%d-%h%n%s%x
変更したら、「変更を保存」ボタンをクリックして、「サイトを再構築」ボタンでサイト全体を再構築します。
共通な部分を外部ファイルにする各ページで浪費しているエントリ本文、追記を外部ファイルとして取り出して共有化します。
MovableType(ムーバブルタイプ)の管理画面左から「テンプレート」をクリックして、画面上にある「アーカイブ」をクリックします。
画面右上の方に「テンプレートを新規作成をクリックしてください。
各入力項目は以下の通りです。
1.テンプレート名: 「エントリー・本文」
2.このテンプレートにリンクするファイル: 未記入でいいです。
3.テンプレートの内容: <$MTEntryBody$>
入力したら保存してください。
次に、MovableType(ムーバブルタイプ)の管理画面左から「設定」をクリックして、画面上の「公開」をクリックします。
そして、画面下の方に「アーカイブ・マッピング」とありますので、その右端にある「マッピングを新規作成」をクリックしてください。
以下のように各項目を選択して「追加」ボタンをクリックします。
1.アーカイブの種類: エントリーを選択する。
2.テンプレート: エントリー・本文を選択する。
これでエントリー・本文のアーカイブが追加されるので、その出力フォーマットをドロップダウンリストから「カスタマイズ」を選択して以下のように変更します。
%y/%m/entry%E-body%x
変更したら、「変更を保存」ボタンをクリックして、「サイトを再構築」ボタンで再構築します。
次に、<$MTEntryBody$>を使っている全テンプレートを以下のコードと差し替えます。
検索・置き換えで行うと確実に実施できます。
変更前 <$MTEntryBody$>
変更後 <?php readfile('<$MTBlogArchiveURL$><$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-body.php');?>
差し替えたら、保存して再構築します。
再構築後、正しくエントリ本文が表示されることを確認します。
同じ要領で追記も外部ファイルにして共有化します。各設定内容は以下の通りです。
テンプレート名: エントリー・追記
このテンプレートにリンクするファイル: 未記入でいいです。
テンプレートの内容: <$MTEntryMore$>アーカイブの種類: エントリーを選択する。
テンプレート: エントリー・追記を選択する。%y/%m/entry%E-more%x
変更前 <$MTEntryMore$>
変更後 <?php readfile('<$MTBlogArchiveURL$><$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-more.php');?>
以上で、エントリ本文、追記を外部ファイルに取り出すことができました。
PHP化前のファイルをサーバ上から削除する一通り各ページの表示が確認できたら、変更前の各ファイル(xxxx.html)をサーバ上から削除します。
通常、アクセスされたページの拡張子によって優先順位が設定されています。リダイレクトが有効の間は問題ないのですが、リダイレクトを外すと優先度の高い順にファイルが表示されます。
一般的に優先度が高い拡張子はhtml、htmになるかと思います。
ですので、PHP化前のファイル(xxxx.html)を削除しておかないと、いつまでたってもPHP化後のファイル(xxxx.php)が表示されないことになります。
Google AdSense