MT4.23のエクスポートで

WordPressに、分割したMTのエキスポートファイルをインポートしたが、不思議と1970年1月1日09:00に作成した事になってしまう記事がいくつかあった。それも3回やりなおして、いずれも400件から600件ほどの大量の記事が1970年1月1日09:00になってしまうのだ

WordPressでは投稿記事一覧で年月ごとに抽出できるため、1970年1月1日09:00に作成したことになった大量のエントリを、一度削除して再度インポートする、という手順を3-4回も繰り返しただろうか。そのうち、何度やっても1970年1月1日09:00になってしまう(それもその時によって違う記事がそうなる)記事があるなら、一つ一つのエントリの日時を編集するしかないと、決死の覚悟で編集(クイック編集で日時を編集)をやり直しだした。しかし、元のエクスポートファイルで数十件の記事を見比べるうち、ふと気付いたことがあった。

それらはすべて、同日にエントリ記事が複数ある時の一部エントリであり、しかも投稿時間がすべて午後であるということが共通していた。もっと良く見ると、時間は24時間表記であるが、午前でも午後でも、投稿日時の最後にPMがくっついている

これじゃぁインポートでエラーが出ても仕方ないかもね。mt/lib/MT/ImportExport.pmを見直してみると、DATE: <$MTEntryDate format=”%m/%d/%Y %I:%M:%S” p%$>となっていた。最後のp%が怪しいので削除して保存、上書きアップロードしてみた。

ところがそれ以前に、一度IDタグを追加していたこともあり、何度上書きしてもそれを読み込んで処理してくれなくなった。ローカルにダウンロードして確認しても私が上書きアップロードした通りになっているのに。(?_?)

仕方ないのでエクスポートしたテキストファイルをテラパッドで開き「pm」をすべて置換で削除した。そのファイルを再インストールしたWordPressにインポートしたら、今度は1970年1月1日09:00にはならずに、本来の投稿日時でインポートされ全部成功した。

WordPressにインポートを数回やり直したことで、新たに分かったこともあった。WordPressは同じ記事をインポートしようとしてもちゃんと見分けがつくらしく「*****の記事はすでに存在します」となって、同じ記事はインポートしないことが分かった。

以前のMTのバージョンアップ時に経験があるが、MTはまったく同じ記事でも無視して関係なくインポートするので、間違えてダブってインポートするとあとで削除しなきゃならないことになるのだ。これもIDタグがついていれば同じ記事をインポートすることはないのかもしれない。成功したインポートファイルにもIDタグが入っていたから、WordPressは判別したのかもしれない。

それでも、1970年1月1日09:00の記事を削除し再インポートする、という手順を数回やっているうち、同じエントリタイトルで同じ編集日時の、全く同じ記事がいくつか出来るようになってしまった。だから本来のエントリ数より数十件ほども記事が多くなってしまった。これじゃ何度やり直しても手間がかかるだけなので、いったんWordPressとデータベースを削除して再インストールした。何しろWordPressのインストは5分もかからないんだからね。再インストールして上記の通り「pm」を削除したエクスポートファイルをインポートし、無事、WordPressへの移行は完了した。^_^; 

また、WordPressのインポートではファイルは5MB以内を推奨しているが、サーバーとの兼ね合いもあるのか、4MBくらいでもインポートは途中終了してしまった。MTプラグインのSelectiveExportを使ってエントリ200件づつエクスポートしたところ、一つのエクスポートファイルは400KB前後と1MBもないことから、とても早くスムーズにインポートが終わった。何度も繰り返し、手間にはなるが、小さいファイルのほうが確実にインポートでき、かえって早く終わる。急がば回れだ。