移行元のブログサービスのバックアップやエクスポート機能はありがたいサービスです。本来なら出ていってほしくないでしょうから、他への引っ越しのためのエクスポート機能ではなく、あくまでバックアップ保存のために備わっている機能だと思います。
それを利用してWordPressに記事含め完全移行を行うわけですから、エクスポートファイルを丁寧に整形してインポートを完全に完璧に実現したいものです。
その一番の担い手がこのプラグインです。
Movable Type and TypePad Importer
Import posts and comments from a Movable Type or TypePad blog.
複数ブログのエクスポートファイルに対応する汎用プラグイン
ライブドアブログやFC2ブログなど大手プログサービスで出力される記事データファイルをWordPressにインポートする際に必須のプラグインです。
今回は、それを微調整して大量の記事の引っ越しに対応させる方法についてご紹介します。
インポートする前に、プラグインのファイルを一部修正
プラグインフォルダの /movabletype-importer/movabletype-importer.php ファイルの 119行目あたりに 8192 という数字があります。それを 81920 と変更します。
function fgets($fp, $len=81920) {
if ( $this->has_gzip() )
return gzgets($fp, $len);
return fgets($fp, $len);
}
デフォルトでは1行あたりの容量が8192バイトに制限。記事中に長い行がある場合にはインポートが正常に処理できない不具合が生じます。そのため桁数を増やしておきます。
これで、大量・長文の記事移行も対応できます。
登録タグの移行も実現するための調整
デフォルトのままですとブログサービスの登録タグを取得してWordPressに反映してくれません。
プラグインフォルダの /movabletype-importer/movabletype-importer.php ファイルの 525行目あたりに出てくる下記コードに下記の追加部分を追記してください。
} else if ( 0 === strpos($line, ‘BLOG NAME:’) ) {
$blog = trim( substr($line, strlen(‘BLOG NAME:’)) );
$ping->comment_author = $blog;
=====追加ここから=====
} else if ( 0 === strpos($line, “TAG:”) ) {
$tags = trim( substr($line, strlen(“TAG:”)) );
if ( ” != $tags ) {
$post->post_keywords .= str_replace(‘”‘, ”, $tags);
}
=====ここまで=====
} else {
// Processing multi-line field, check context.
コメント