●アーカイブ・マッピングと「MTEntryDate format」
インストールもなんとか突破して、テスト用ブログに日記のバックアップファイル「mt.cgi」をインポートして、再構築したら、エラーが出てしまいました。
「エントリー以外の場所でMTEntryDate formatを使っちゃいけないよ」みたいな事が、がなんたらかんたら……。
もしかして……と思い、「設定」→「公開」にある「アーカイブ・マッピング」(3.1xまでの「アーカイブの設定」に該当)を見てみると、ここで使っていました。
個別アーカイブファイル名を「年/月/日-時間.php」にするために、「アーカイブファイルのテンプレート」欄で
<$MTEntryDate format="%Y/%m/%d-%H%M"$>.php
としていた事が原因でした。
(月別アーカイブでも、MTEntryDate formatを使用)
そこで、「出力フォーマット」欄でMTEntryDate formatのタグを除いて
%y/%m/%d-%H%M.php
と指定して再構築してみたら、エラーも出ずに無事再構築が終了しました。
が!!
「年」の部分は「2005」のように西暦で4桁の数字になるように指定していたのですが、何故か下2桁で作製されてしまいます。
検索してみたところ、アーカイブ・マッピングで4桁の西暦にするには
「%Y(大文字)」ではなく「%y(小文字)」にしなくてはいけないとか。
【11/16追記】ブログ内にリンク切れを多数発見!!
何故か、本来であれば「年/月/日-時分.php」という形式でアーカイブが作製されるはずなのに、「年/月/日-時.php」という形式でアーカイブが作製されていた事が原因らしい。
アーカイブ・マッピングで分を表示させるには、
「<$MTEntryDate format="%Y/%m/%d-%H%M"$>.php」ではなく、
「<$MTEntryDate format="%Y/%m/%d-%H%n"$>.php」にしなくてはいけないとか。
参考……Movable Type 3.2 User Manual: Archive File Path Specifiers
Movable Typeユーザー・マニュアル: テンプレート・ タグ/日付タグのフォーマットとの「微妙」な違い、一体何なのでしょうねぇ?
【11/11追記】
その後ブログの再構築を行ったところ、再び「MTEntryDate format」の使用によるエラーが出てしまいました。
月別テンプレートに、以前使用していたテンプレをコピペした後だったので、テンプレをよく見てみると、月間のエントリータイトル一覧を表示させるために
<? include "../../list_<$MTEntryDate format="%Y/%m/"$>index.php"; ?>
としていた事が原因でした。
(サイドバーのパーツは、基本的にモジュール化して、インクルードしています)
これをアーカイブ・マッピングでの指定と同様に
<? include "../../list_%y/%m/index.php"; ?>
と訂正したところ、無事に再構築が終了しました。
しかし、これでは月間エントリーのタイトル一覧がインクルードされず、仕方なく、月間アーカイブのテンプレートに、それまでインクルードさせていたタグを記述させる事にしました。
負荷の軽減のためにも、できればインクルードさせたいんだけど、何かいい方法ないかなぁ〜。