ココログからWordPressへ記事を移転する方法

Pocket

はじめに

2004年6月にblogをココログで開始してからもうかなりの期間が経過しました.最近では更新してないにもかかわらず少なからずのアクセスがあり,これもひとえにココログで継続してblogを書いてきたからだと思っています.

しかし,ここ数年前,もっと言えばiPhoneにしたくらいからココログには不満がありました.それはスマートフォンや携帯への対応が進んでいないということです.最近流行りのレスポンシブデザインなんか到底無理(アドレスがスマートフォン用に変更される)で,しかもテンプレートもそんなに増えない現状では,ここで継続する意味があるのかと思うわけです.

そこで,以前からVPSを借りてこそこそやっていたのですが今度こそ本格的にWordpressによるblog運営に移行しようと計画して,この夏実行に至りました.

しかし,そこはココログ.Movable Type系であるココログからWordPressへの移行は簡単だと思っていたら実に多くの人がはまっているようなので,先人たちに敬意を払いつつ私なりにまとめてみることにしました.


Ads

ココログからの記事をエクスポートする

実はココログには記事をエクスポートする機能がついています.ココログにログインして「管理」にある「読み込み/書き出し」から記事をエクスポートすることが出来ます.

ココログのエクスポート画面

ココログのエクスポート画面

「読み込み/書き出し」にある「書き出し」では,IPv6対応とIPv4対応で記事をpost.txtとして名前をつけて保存(そのままクリックするとブラウザで閲覧))することが出来ます.IPv4だと記事が一部しかダウンロードできなかったので私はIPv6対応で書き出しました.1000を超えるエントリーがあり,post.txtのファイルサイズは9.9MBにもなりました.

ココログの記事をWordPressにインポートする方法

WordPressでココログのpost.txtをインポートするにはダッシュボードからプラグイン→新規追加で「Movable Type and Typepad Importer」をインストールする必要があります.

プラグインをインストールして有効化したらダッシュボード→ツール→インポートにある「Movable Type and Typepad」をクリックします.

wordpress_import_tools

import_from_typepad

ここを読むとファイルをアップロードしてインポートするか,/wp-content/ディレクトリに「mt-export.txt」としてアップロードして「Import mt-export.txt」を押すかしろとあります.ファイルをアップロードしてインポートするにはファイルサイズが大き過ぎるので,今回はpost.txtをmt-export.txtと名前をつけて保存してからVPS(CentOS6.4 64bit)の/wordpress/wp-content/にコピーしました.

FTPもインストールしてないのでWinSCPを使ってローカルにあるファイルをVPSにアップロードしてmvしました.これだけでも1エントリーできそうなので今回は省略.

準備が終了したら「Import mt-export.txt」からインポートできます.きちんとインポートしてくれたように見えますが,画像のリンク先がココログのままになっているのでココログを廃止できません.

Import_from_typepad_final

ココログを残したままで移行するというのならこの選択でもいいのかもしれませんが,今回はまるごと移行を目指しているのでこの方法だけでは無理のようです.

ココログの画像をなんとかローカルに保存したい(1)画像リンク抽出

というわけで,文章だけはエクスポートすることが出来ましたが,画像のリンクはココログのままなので,ここをWordpressに置き換えるためにはまず画像を保存してWordpressに持ってこないといけません.

ココログでは「マイフォト」に画像を保存しているようです.私のblogではなんと2,454枚もアップロードしていました.

cocolog_myphoto_2

「マイフォト」からは50枚ずつ表示して閲覧することが可能なので,ダウンローダーなどを使用して1ページ(50枚)ずつ保存するという方法もあるようですが,今回は2,454枚なので日が暮れそう.

なので違う手順を模索.

ブログ「QuickTimeVRパノラマギャラリー」にある「ココログ マイフォト画像のWordPressへの移行」というエントリーには,画像を一括ダウンロードするための手順が記載されていました.

リンクと画像の抜き出しツールでは,ココログから書きだしたファイルをコピーし,imgがついているタグだけを抽出してくれます.脅威の6000件.

img_from_cocolog_1

とりあえずこれを全選択してコピー.このままでは面倒なのでLibreOffice Calcにインポート(というかLibreOfficeは普通にファイルを開くとインポート設定画面になる).コロンとスペースを区切りにするとA列が番号,B列がコロンになるので,B列を削除してアドレス名を昇順で並び替える.

今回調べた6000件のうち,ohtsuka.cocolog-nifty.comにあるファイルを表示しようとするimg命令は2164件でした.

よく見ると,ohtsuka.cocolog-nifty.com/以下の
photos/uncategorized/20xx/MM/DD/filename.xxx


blog/images/20xx/MM/DD/filename.xxx
になっているようです.

これをテキストファイルにしてダウンローダーを使用してダウンロードします.

ココログの画像をなんとかローカルに保存したい(2)CompleteGetter

(1)のやりかたでダウンロードしようと思ったのですが,もしやと思い検索してみるとVectorでCompleteGetterなるフリーソフトを発見しました.

使い方は簡単.アドレスを入力してダウンロードするだけ.するとフォルダーごとに保存してくれます.今回はかなりの量があるのでダウンロードに1時間以上かかりました.

Completegetter_1

私のblogではohtsuka.cocolog-nifty.com/blog以下に,
・images
・photos
・ files
がありました.filesは昔3gpの動画を一つあげていただけで,画像はimagesとphotosに入っています.

ココログの画像をwordpressにコピーしてwordpressで使えるようにする

wordpressではuploadフォルダで管理するようになっていますが,アップロード先を変更することが出来ます.WordPressの画像アップロード先フォルダ名やディレクトリを変更する方法にはupload以外のフォルダにアップする方法について詳しく書いてあります.今回はこちらと同様にimagesフォルダに画像を集約します.

ドメイン名/wp-admin/options.phpへ移動し,「upload_path」と「upload_path_url」を変更します.その後imagesフォルダをwordpress以下に作成しパーミッションを変更しておきましょう.images以下にサブディレクトリを作成するのでこれらのパーミッションも同様に変更しておきます.

今回はphotosフォルダを/blog/photos/uncategorized/から/images/uncategorized/に変更してimagesフォルダの中に変更しておきます.filesにある3gpのファイルも同様にimagesに移行しておきます.

ローカルでimages以下のフォルダを作成してzipで圧縮したらWinSCPで転送して解凍→suになってwordpress/images以下にmvしてパーミッション変更しておきます.

ちなみに今回は100MiBのデータ(ZIP)になってます.

このままだとメディアライブラリから画像が見えないので,WordPressのプラグインであるFlash Uploader 3.1.3をインストールしてみる.

Syncを押すだけなんだけど,2000枚もあるのでかなりかかりました.

しかしここで問題が.ココログのマイフォトを見ると2400枚以上あるのにダウンロードした写真は2200枚程.残りはどこに行ったのか?

よくよく調べてみると,画像を縮小して表示している場合,

<a href="http://ohtsuka.cocolog-nifty.com/.shared/image.html?/photos/uncategorized/20xx/xx/xx/filename.xxx" class="mb"><img width="xxx" height="xxx" border="0" alt="xxxxxxx" title="xxxxxxx" src="http://ohtsuka.cocolog-nifty.com/images/20xx/xx/xx/filename.xxx" />

という場合のファイルが取得できてない.結局最初の方法でhrefが記述してある場所を書き出し,編集したら964件になりました.

このままだと変な文字列がついていたのでcsvにしたものを秀丸で置換して削除しました.面倒なので正規表現を使いました.その後ダウンロードソフトで画像を一括ダウンロードしました.この場合は相対的な位置が保存されないのでフォルダに一括して保存されてしまうため,保存されるフォルダを作り直す必要があります.これが一番大変.900件以上のファイルをコピーしないといけませんでした.

数日かけてやっとファイルコピーが終わりました.終わったらフォルダーごとzipで圧縮してwinscpで転送.mvだとからでないフォルダにmvできないのでcp -rでコピー.1つだけファイルが上書きされたけどそのまま放置.パーミッションの変更をしておきましょう.

ココログからエクスポートされたtxtをwordpress用に変更する

ココログからエクスポートされたtextをそのまま使用しても問題ないのかもしれませんが,今回は旧ココログにアクセスしないようにするため次のような処置をしました.

(1) ohtsuka.cocolog-nifty.com/blog/と書いてあるものをnan-hen.com/に置き換える.
これは単純に言うと「ohtsuka.cocolog-nifty.com/blog/」を「nan-hen.com/」に置換することです.まずこれで2137個置換されました.

(2) ohtsuka.cocolog-nifty.com/photos/をnan-hen.com/images/に置換する
ココログでアップロードされた画像はimagesとphotosにアップロードされています.まずphotosフォルダにアップロードされている画像へのリンクをnan-hen.com/imagesに変更.これも1230個もありました.

(3) http://ohtsuka.cocolog-nifty.com/.shared/image.html?/photos/をhttp://nan-hen.com/images/に置換.
これは上に書いたようにココログでの仕様?らしいので一括で置換する.これも多くて964個.

とりあえずはこれで準備完成です.上に書いたようにファイル名を「mt-export」にしてwinSCPでアップロードしてその後/var/www/wordpress/wp-content/にcpしておきましょう.

WordPressでダッシュボードにログインし,ツール→インポートからmt-export.txtからのインポートを選択します.すると「Assign Authors」の画面となり,ユーザー名をどうするのかを決めることが出来ます.私の場合,従来のユーザー名から新しいユーザ名に変更するので変更してsubmit.

wordpress_assign

しばらくすると番号付きでインポート結果が画面に出てきます.私の場合,1396件のエントリーをインポートしました.最後にある「Have fun!」をクリックすれば完了です.

ざっと見てみたところ,自分のblogへのリンクがうまくいかない.これはどうもwordpressにインポートした際にタイトル名が変更されてしまうからのようです.しまったぁ.

なのでインポートファイルの置換をやり直すことに.
(1)のohtsuka.cocolog-nifty.com/blogをohtsuka.cocolog-nifty.com/blog/imagesにして置換します.1048件.あとは上と同じ.これでインポートすると過去記事へのリンクはすべてココログへのリンクとなってしまいます.
結局この件だけ解決しないままブログ移転となってしまいました.時間があるときに旧ブログへのリンクをちまちま変更していくしかないのでしょうかね.