Movable Type テンプレートカスタマイズ (2) - php化に伴う自動転送ファイルを生成する -


カテゴリー[ブログ・MT]

Movable Type 3.0Movable Typeのテンプレートのカスタマイズ第2弾です。

今回ご紹介するのは、カスタマイズ自体ではなく、カスタマイズの副作用を補完する方法です。

どういう使用方法を想定しているかというと、例えばブログをphp化(php化自体は後日別のエントリーに詳しく書きます)する場合、各ページの拡張子がhtmlからphpに変わる、すなわちファイル名が変わってしまいます。

これがどういう副作用を引き起こすかというと、例えば

  • トラックバック先から自分の記事へのリンクがたどれなくなる
  • 検索エンジンからのリンクがしばらく(次のクロールまで)たどれなくなる

というわけで、これを解消するためにxxx.html→xxx.phpの自動転送を実現するxxx.htmlを自動生成する方法をご紹介したいと思います。

他にも、.htaccessのリダイレクト機能を利用する方法で同じことを実現できますが、ユーザに.htaccessの使用が許可されていないといった場合でも使えるような万能な方法を今回は紹介します。

テンプレートの追加

まず、転送用ファイルのテンプレートを作成します。

テンプレート作成ページの真ん中にあるアーカイブに関連したテンプレートに移動し、新しいアーカイブ・テンプレートを作るをクリックします。

テンプレートの名前は適当でいいです。
とりあえず、個別エントリーアーカイブ(転送用)としときます。

テンプレートの中身を例えば次のようにします。(ご自分のページに合うように適時変更して下さい。)

個別エントリーアーカイブ(転送用)

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title><$MTEntryTitle$></title>
<META http-equiv="Refresh" content="0; url=<$MTEntryID pad="1"$>.php">
</head>
<body></body>
</html>

タイトル、転送先URLは適時変更して下さい。
これでテンプレートの作成は終了です。

次はアーカイブの設定です。

アーカイブの設定

ウェブログの設定 > アーカイブの設定 に移動し、新しくテンプレートとアーカイブを関連付けるにおいて、
アーカイブの種類:個別 テンプレート:個別エントリーアーカイブ(転送用)
を選択し、追加ボタンをクリックします。

下のアーカイブ一覧の個別に新しいテンプレートが追加されていることを確認し、アーカイブ・ファイルのテンプレートのテキストボックスに次のコードを記述します。

アーカイブ・ファイルのテンプレートのテキストボックスへの記述
  • 個別エントリーアーカイブ(転送用)の場合は、<$MTEntryID pad="1"$>.html
  • 日付アーカイブ(転送用)の場合は、<$MTArchiveDate format="%Y_%m"$>.html
  • カテゴリーアーカイブ(転送用)の場合は、cat_<$MTCategoryLabel lower_case="1"$>.html

設定が終われば、変更を保存ボタンをクリックし、サイトの再構築を行えば終了です。
該当のhtmlファイルが生成されていることを確認して下さい。

感想ですが、こういったことができることがMovable Typeの大きな特徴ではないでしょうか。

投稿者: ゆめのあと PM 11:03 | コメント (0) | トラックバック (0)


この記事へのトラックバックのリンク
http://mt.teacaddy.net/mt/trackback.cgi/166

この記事へのコメントを投稿する









次回のためにブラウザに情報を記録しますか?




画像の中に見える文字を入力してください。