今のWordPress(3.7とか3.8)はプラグインでMTの記事を簡単にインポート出来るようになっているのにMT側のエクスポートファイルの吐き出しに問題があるので備忘録として書き残しておきます。
技術は詳しくないので作業手順はかなりアナログな方法です。
しかし、
確実に元のURLを引き継いでMTからWP化するには気をつけなくてはいけないポイントです。
最も注意したこと
SEO面でのアクセス流入損失を可能な限り防ぐため
- ページURL
- 画像URL
ともMTが吐き出していたURLをWPでも継承すること。
とりあえずこれらに配慮した方法です。
MTからWP化への移行作業手順
1,MTからエクスポート
まずは元のブログであるMTから記事エクスポートを使いすべての記事データをテキストデータとして吐き出す。(◯◯.txtといったファイルになる)
※ここで必ず後に書いてるMT吐き出しイレギュラーが無いか要チェック!
(手こずるポイントです)
2,サーバーから全公開ファイルダウンロード
MTで公開していたURL(フォルダ)から画像、htmlファイルなどを含むすべてのファイルをローカル保存。
※今回はi6i6.jp/blog/という場所のままMTからWPへ入れ替え作業なので1のエクスポートファイルと2のダウンロードした元ファイルさえあれば続く作業で完全にWP化出来る流れです。
3,元の公開サーバー内に画像だけ残してHTMLファイルなどを削除
今回は移行時に元のファイルやフォルダがあると鬱陶しいので、元のMTが吐き出してたファイルやフォルダをサーバーから全削除してみた。(画像フォルダなど投稿者によってまちまちなので移行後もサーバー上で必要な画像やファイルは残す手順のほうが良いと思う)。今回はこの時点で元のサイトがサーバー上から消失している状態。あとで選別した上で必要ファイルをアップロードする流れです。
普通は必要な元ファイルは残して作業を進めるほうがいい。
4, WordPressを入れたいフォルダにインストール
元のフォルダと違う場所へインストールするのであればインストール後、index.phpとhtaccessを入れ替えるサイトの階層へ設置(WordPress公開URLと設置URLが違う場合で検索すればわかる)
5,WordPressへMTファイルをインポート
MTからエクスポートされたファイルをWordPressのツール→インポートからインポートする。この際、プラグインがインストールされていなければ自動的にMovable Type and TypePad Importerというプラグインをインストールして作業を進める流れになります。
※WordPress管理画面でツール→インポートと進めると上記のような画面が出るのでMTからの移転であればMovable Type and TypePad をクリック。
6,パーマリンク設定
インポートが完了したらWordPressの管理画面でパーマリンク設定(URLの吐き出し設定)
月と投稿名 http:/i6i6.jp/blog/2014/01/sample-post/
を選択して
カスタム構造のところでURLの末尾を
https://i6i6.biz/2014/01/sample-post.html
と書き換える。(月と投稿名で自動的に表示されるURLの末尾のスラッシュを消して.htmlを追加した)
※この作業はもとのMovable Typeで表示させていたURLに準じて調整が必要.htmや.phpなどと吐き出しているなら元の形に合わせる)
7,サーバー内で画像へのリンク切れが起きてるはずなので(3の段階で全削除してれば)、assets_とか年月日のフォルダにある画像を元の階層へアップロードしておく。(あるいは、3の段階で削除せず画像を除いたファイルのみサーバーから消す)
以上でWP化はだいたい完了
ざっくりとしたMTエクスポートからWPインポートまでの流れはこんな感じ。
画像ファイルもWordPressの内部へ入れる方法があるようですが、Googleの画像検索からの流入を考えると元の階層で画像を置いておくほうがサイトのアクセス維持を尊重する場合に無難な方法です。
※コメント欄が全部開放されてたりとかするので投稿一覧から20件ずつ編集してコメントを許可しない作業も必要に応じて行う。
発生しうるトラブル MT吐き出しイレギュラー
これが注意すべきポイントです!
今回はMovable Type5からWordPress3.8への移行でした。
MTからWPで起こるハプニングはMTから吐き出したインポートファイルのBASENAMEという項目で元々のURLで表記されていたハイフン( - )がアンダーバー( _ )となって吐出されていることです。
MTから吐き出したままのファイルでインポートするとこのイレギュラーが発生していた場合、新しいブログ(WP)のインポート後の該当ページは元のURLと異なるものとなり検索エンジンがもともと評価していたURLでは無くなってしまいます。外部からリンクがあった場合はリンク切れになります。
MTのエクスポートファイル(.txt)は
——–
AUTHOR: 投稿者ID 半角英数
TITLE:記事のタイトル
BASENAME: post_100
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: richtext
ALLOW PINGS: 1
DATE: 12/17/2013 04:47:22 PM
TAGS: “iPad mini”,Kindle,NEXUS7,ペーパーホワイト,比較,電子書籍
—–
BODY:本文へ
といった感じで出力されます。
ここで重要なのが
BASENAME: post_100
に当たる部分。
この例でいくと
http:/example.com/2012/09/post-100.html(MT時代のWEB上でのURL表記)
しかしMTのエクスポートでがイレギュラで
http:/example.com/2012/09/post_100.html
元のURLがこれだったようにエクスポートファイルを吐き出してしまう。
これをこんな感じに1記事ごとBASENAME:の半角英数をアンダーバーからハイフンへ書き換えなければいけない。
一括置き換えで一部修正
テキストエディタで
「post_」 を検索して 「post-」へ一括置き換えすればMT上でタイトルに空白を使ってなかった記事のURLは修正可能。
しかし、元のMTで半角英数を使ったり半角、全角の空白をタイトルに含んでいたような記事のBASENAMEにはタイトル上の空白部分にアンダーバーが入り、元のURLでハイフンだったのにエクスポートファイルではアンダーバーになってしまっている。
雑にエクスポートファイル内のアンダーバーを一括変換すると
assets_
IMG_
_blank
といったものやイメージファイルに自動で振り付けられた日付入りの画像名などが全てリンク切れになってインポートされてしまうので、
やむを得ず手作業で全記事のBASENAMEに含まれるアンダーバーをハイフンへ書き換える作業を行った。
450記事ほどあったので2時間近くかかった。
非常に骨の折れる作業だった。
他にいい方法に気づけばいいのですが、技術力など持ち合わせてないのでアナログ作業となりました。
移行作業後の動作チェック
とりあえず1記事書いてみましたが(この記事)パーマリンクはこのページのような感じになるようです。とりあえず問題なし。
5年間使ってたブログ用Movable Type(MT)の再構築とか面倒でブログもいつしか書かなくなってたのでWordPressへ移行作業を行いました。WPで簡単に出来ること(SNS連 携とか諸々)がMTだと大変面倒なので個人ブログとはいえ利便性の面でMTは勝手が悪いなと感じての実行です。
追記
問題発生:TOPページやアーカイブページの表示が異常に遅い。各ページはTribe Object Cacheというプラグインで多少高速化できたが、一覧ページの表示が遅い。