前提
- 移行元がウェブリブログ
- 移行先がWordPress(.comではなくインストール形式の物)
- サーバーにWordPressがインストールしてある
- FTPを使ったファイル転送が出来る
- Visual Studio Codeなどのエディターを使ってファイル編集が出来る
移行するデータ・しないデータ
移行するデータ
- 記事本文
- 画像
- 画像データはエクスポートデータに含まれない。
- カテゴリー、タグ
移行しないデータ
- コメント
- ウェブリブログオリジナル絵文字
ウェブリブログのMT形式データをエクスポート
ウェブリのブログ管理画面にログインしてエクスポートページに移動。
エクスポートするファイルの選択(MT形式)内の出力設定
文字コード
- EUC-JP
- UTF-8
- Shift-JIS
今回はUTF-8を選択
取得範囲
記事の数が多いと一度に出力出来ないので1年毎などに分けて複数出力。
エクスポート予約という機能もあるが使い勝手が悪そうだったので手動で分割する方法にした。
コメント/トラックバック/テーマ
- コメント
- トラックバック
- テーマ
ここでよく説明を見ればよかったんだけど「テーマ」の項目が一般的にタグと呼ばれる物だということに気づいていなくて、一通り移行が終わった後にタグのデータがなくてやり直しになった。
データが多い分には後から削ればいいので最初は全部チェックつけてエクスポートしてもいいかも。
設定項目の取得範囲を変更してデータを9年分(約800件)エクスポート。
記事の文章データはこれでダウンロード完了。
画像データの準備 (1/2 DL)
ウェブリブログの使い勝手の悪い所は記事で使用している画像の一括ダウンロードができない所。
拡張機能を使ったりプログラムで自動で取得したり好きな方法で画像データを準備する。
今回はブログ管理画面から画像データを保存するプログラムを作成した。
ファイル名はウェブリブログで使用しているものと同一になるようにする。
画像データの準備 (2/2 WordPressに登録)
ウェブリブログで使用してる画像をすべて1つのフォルダに格納してFTPを使ってサーバーにアップロード
/{wordpressインストールフォルダ}/wp-content/uploads/{画像格納フォルダ}/
アップロードしただけではWordPressのメディアに登録されないので、画像登録プラグインを使用する。
プラグインを追加して「一括登録」からファイルをアップロードしたフォルダを選択。
画像の件数が多すぎると登録中に応答なしになることがあるけど再度登録実行すると自動でスキップされるので問題は無い(はず)
登録が終わってメディア欄から確認できれば画像データの準備完了
記事データ(MT形式)を新ブログ用に編集
WordPressに記事データをインポートした後なるべくそのまま使えるように前準備をする。
- 記事内のブログ内リンクのドメインを移行先のものに置き換える
- 記事内のブログ内リンク用に記事のURL(スラッグ)を置き換える
- 画像URLを移行先のURLに置き換える
- ウェブリオリジナル絵文字を削除する
1. 記事内のブログ内リンクのドメインを移行先のものに置き換える
テキストエディターの文字列置換機能を使ってURLを編集。
http://〇〇.at.webry.info/201001/article_1.html
から
http://{移行先WordPressドメイン}/201001/article_1.html
2. 記事内のブログ内リンク用に記事のURL(スラッグ)を置き換える
2箇所を文字列置換
/article_ → _article_
.html → _html
.htmlの方を編集するときは外部リンクなどのブログ内リンク以外のものが含まれていないか検索結果件数などで確認する。
今回移行作業を行ったブログは外部リンクが少なかったので対応が比較的楽だった。
ブログ内リンクとBASENAMEの2箇所を対象に作業する。
3. 画像URLを移行先のURLに置き換える
画像URLを置き換えなくても一応は画像は表示されるが移行元のブログを削除したりブログサービスが閉鎖されたりすると表示されなくなるので、WordPressに登録した画像を表示するようにURLを置き換える。
http://userdisk.webry.biglobe.ne.jp/〇〇〇/〇〇〇/〇〇〇/N000/000/***/image.jpg
画像の件数が多いと***の部分が000から001, 002, … 015, …といった感じで増えていく。
http://userdisk.webry.biglobe.ne.jp/.*?/.*?/.*?/N.*?/.*?/.*?/
https://userdisk.webry.biglobe.ne.jp/.*?/.*?/.*?/N.*?/.*?/.*?/
上記2つの文字列を移行先ドメイン+さっき画像登録したフォルダに置き換え。
http://{移行先WordPressドメイン}/{wordpressインストールフォルダ}/wp-content/uploads/{画像格納フォルダ}/image.jpg
2019年に画像URLがhttpからhttpsに変わったみたいなので置換忘れに注意
4. ウェブリオリジナル絵文字を削除する
WordPressで他のブログサービスオリジナル絵文字を使うわけにはいかないので
\{%.*?%\} → ""
記事データ(MT形式)をインポートするための準備
- インポート用のプラグインをインストール
- 改行を保持するプラグインをインストール
- 記事データをインポートした時に改行を残すようにプラグインを編集する
- 抜粋が改行タグにならないようにプラグインを編集する
- Webryで使用していたテーマ(タグ)をWordPressにタグとして登録する処理をプラグインに追加する
1. インポート用のプラグインをインストール
WordPress管理者画面のツール>インポートから進んでも同じプラグインがインストールされる。
2. 改行を保持するプラグインをインストール
3. 記事データをインポートした時に改行を残すようにプラグインを編集する
Movable Type・TypePad インポートツールのファイルを直接編集する。
下記のコードの上2行をコメントアウトして3行目を追記する。
// if( !empty($line) )
// $line .= "\n";
$line .= "<br />";
4. 抜粋が改行タグにならないようにプラグインを編集する
下記コード2行をコメントアウトする
// } else if ( 'EXCERPT:' == $line ) {
// $context = 'excerpt';
5. Webryで使用していたテーマ(タグ)をWordPressにタグとして登録する処理をプラグインに追加する
参考URL
「タグが移行できない」の部分を参照
function process_posts()内の} else if ( 0 === strpos($line, “DATE:”) ) { の上に下記コードを追記。
} else if ( 0 === strpos($line, "TAGS:") ) {
$tags = trim( substr($line, strlen("TAGS:")) );
if ( '' != $tags ) {
$post->post_keywords .= str_replace('"', '', $tags);
}
記事データ(MT形式)をインポート
- WordPressの管理画面(ダッシュボード)から「ツール」>「インポート」>「インポーターの実行」
- URLの置換などの編集が済んだファイルを指定して「ファイルをアップロードしてインポート」
- 記事の投稿者をどのユーザーにするか選択して「実行」ボタンを押してインポート。
終わり!