ライブドアブログからWordPressへ記事を移行するお仕事があり、MT形式のエクスポートファイルをインポートすると、管理画面上では問題なく完了したように見えて実は複数の記事が登録されていなかった事があったので、その原因と対策をメモします。

困ったこと

ライブドアブログやTypePadなど、MovableType形式のブログから書き出した記事をWordPressへインポートすると、件数が多くても少なくても、エラー表示が無いまま完了画面が表示されるものの、特定の記事の取込みが必ず失敗する。
インポートに使用するプラグインは「Movable Type and TypePad Importer

原因

プラグイン側の設定により、1行あたりの容量が8192(-1)バイトに制限されているため、記事内の長大な行を正常に処理できない

/wp-content/plugins/movabletype-importer/movabletype-importer.php
102〜106行目

function fgets($fp, $len=8192) {
	if ( $this->has_gzip() )
		return gzgets($fp, $len);
	return fgets($fp, $len);
}

対策

  • エクスポートファイルに、改行タグなどの位置で適度な改行を加える
  • $len=8192 の数値を適度に大きくするか、またはlengthを指定しない