MT 3.2-ja-2:「エントリー・ファイル名」が勝手に変わる


ずいぶん前に Movable Type を導入した時ユーザーから、
「なんか勝手にリンク先が変わってるみたいなんだけど・・・」
見たいな質問を受けていたんですが、自分自身が積極的に使ってなかったので放置してたんですが、今回 Movable Type でブログを再構築するに当たって同じ問題にぶち当たったので調べてみました。

Movable Type のバグみたいです。
既存の記事を編集する際に、「確認画面でエントリーを保存する」事が原因らしいので、「編集画面」で保存すれば発生しないみたいです。

これって凄く怖いバグだと思うんですが・・・
エントリー・ファイル名が変わってしまうって事は、「エントリーを更新する」というよりは、「新しいファイルを作ってリンクを貼り直した」と言う感じです。

見た目上は最新の記事しか見れなくなるので、投稿者自身は「記事が更新された」と思ってしまいますが、MT は古いエントリーを削除してくれないみたいなので、古いファイルは古い内容のまま残ってしまいます。

昔トラックバックを送った先のブログでは、古い記事URLにリンクされるので、「間違って公開したくない内容も含めて公開してしまっていた。」なんて場合には本当に怖いです・・・



対策としては、「確認画面」で保存しない以外にも、テンプレートファイルを修正することで対応できるようです。

具体的には tmpl/cms/edit_entry.tmpl のフォームの中に以下のタグを挿入するだけだそうです。

<input type="hidden" name="basename" value="<TMPL_VAR NAME=BASENAME>" />

ところで、このバグは Movable Type 3.17 で修正されていたようですが Movable Type 3.2-ja-2 で復活したようです。

Six Apart - Movable Type サポート: Movable Type 3.17の修正点