ブログをMovableTypeからWordPressに移行しました

WordPress2.7に移行しました。

RSSフィードは引き続き「http://feeds.feedburner.jp/trick7」で購読できると思います。移行手順などを書き記しておきます。
※記事内の単語ですが、固定リンク=パーマリンク(パーマネントリンク)、WordPress=WP、MovableType=MT、フォルダ=ディレクトリ、というノリです。

移行前のMovableTypeでのブログ仕様

移行前のMTの状況は以下の通り。

  • MTのバージョンは3.33。4にアップグレードしようと思ったら失敗しまくったので、3.33のまま運営していました。最近ログインの度に「3.32から3.33へデータベースをアップグレードします」みたいな作業を強いられていて困っていた。すでに3.33やっちゅーねん。
  • MTブログのphp化をしていた。つまり生成された記事は.htmlではなく、.phpになるように改造していました。
  • 生成された記事のパーマリンクは日時を使って「http://www.trick7.com/blog/2008/12/27-103425.php」としていた。読者の人にもこのURLでブックマークしてもらっている。
    ※タイトルを元にURLを生成するやつとか「post_99」とか、そういう形式のパーマリンクは使っていないし、それでブックマークしてくれてる読者もいないと思う。
  • 上記補足。記事はDBからダイナミックパブリッシングしているわけではなく、blog配下のフォルダには「/2008/12/27-103425.php」のようなフォルダ(ディレクトリ)構造でphpファイルが生成されているという状態。
  • RSSフィードは、一番初期は「http://www.trick7.com/blog/atom.xml」でatomフィードを、「http://www.trick7.com/blog/index.xml」でRSS2.0フィードを生成しており、途中でFeedBurnerに乗り換え、上記RSSも全て「http://feeds.feedburner.jp/trick7」に転送されるようにしていました。
  • テンプレートは「Vicuna – Movable Type テンプレート」の、当時一番シンプルだったスキンを改造したものを使っていました。
  • エントリ数は約600、コメント1500、トラックバックは途中でオフにしたこともあり、ほとんどゼロ。
  • スパムコメントは1日2000個ぐらいきてたようだけど、MovableTypeでもakismetという精度の高いスパムフィルタが使えたので、ほとんどのスパムは振り分けできていた。
  • sitemap.xmlを生成し、「Googleウェブマスター ツール」に登録していた。
  • MXNA(今はAdobe Feedsに改名)にpingを飛ばして更新通知している。ping先のURLは「http://weblogs.macromedia.com/mxna/・・・」とMacromediaのままだけど、今でも無事に反映されているので大丈夫っぽい。

WordPressへの移行作業

目標としては、とにかく読者の人が今日までしてくれているパーマリンクURLだけは維持させたかった。できれば登録してもらっているRSSフィードも現状維持したい。

  1. 「IDEA*IDEA」様にて、今までの固定リンクを維持したままMovableTypeからWordPressに移行する手順が紹介されていたので、こちらの記事を頼りに以下の作業開始。
  2. DBのバックアップはよく分からないのでしなかった。FTPでblogディレクトリ以下をローカルに保存しただけ。
  3. 僕はhetemlレンタルサーバを使っているので、WordPressのインストールはheteml様の解説記事に従う。データベースは最近使えるようになったMySQL5を使うことにしました。
  4. WordPressインストール時、まだMovableTypeの「http://www.trick7.com/blog」のblogディレクトリが存在していたので、一旦WordPressは「・・com/wordpress」というディレクトリ名でセッティングしました。
  5. MTから吐き出した全エントリデータである「mt-export.txt」をWordPressにインポート成功。この段階で、移行したエントリは「http://www.trick7.com/blog/?p=41」みたいな番号でアクセスできるようになっているが、これを旧来のパーマリンクに対応変更していくそうな。
  6. 「IDEA*IDEA」様の解説に従い、MT時のパーマリンクのリストである「postnames.txt」から、WPへの固定リンクマッピング用のSQLを作ろうという時点でちょっと気付く。今いじろうとしている「postnames.txt」の固定URLは
    flash_17|ギタースコアを表示するFlashアプリを計画したけど既にあった
    flash_math_physics_designactio|Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]
    uniqloflash|UNIQLOのFlashチラシが良かった
    169youtube|16:9になったYouTube用の動画アップロードサイズ
    post_96|パパパ大賞
    :

    みたいに、固定URLがタイトルをもとにした単語名URLになってる。僕のブログは前述の通り「2008/12/27-103425.php」という日付フォーマットなので、このマッピング用のSQL作業をしても意味がない。かといって「|」の前の部分を日付フォーマットにスマートに変更する作業もよく分からない。「しまった!失敗したか!?」と焦る。

  7. 調べてみたら、WordPressの機能として、生成する記事のパーマリンクのフォーマットを変更できるとのこと。管理画面の「設定>パーマリンク設定」の「一般的な設定」項目を「カスタム構造」にチェックし、僕の場合は「/%year%/%monthnum%/%day%-%hour%%minute%%second%.php」と入力する。MTからインポートしてきた記事も投稿時間情報は持っていたので、これで「2008/12/27-103425.php」というURLでアクセスできるようになった。
    WordPressのパーマリンク設定
    注意1:エントリに秒数まで含んでいないと困ったことになるらしい(こちらの記事の4つ目のコメント参照)のだけど、僕はMT時でも秒数を含んだURLを使っていたので運良く助かりました。
    注意2:WPのカスタム構造のフォームに絶対パスで「http://www.trick7.com/・・・」と入力し保存すると、「/http://www.trick7.com/・・・」と勝手に先頭にスラッシュを入れられておかしなことになった。で、いろいろやってみて「/%year%/・・・」とすることで期待通りになりました。
  8. この時点でWPブログのアドレスは「trick7.com/wordpress」なので「trick7.com/blog」になるように変更する。←今思えば、予め旧ブログをリネームしておいて、最初から”blog”で作っておけば楽だったかも。
    FTPソフト上でMTブログ側のフォルダ名を仮設的に「_blog」に変更し、WP側を「blog」に変更。この時点で一旦WP側の管理画面を遷移できなくなると思う。これを直していく。heteml管理画面からphpMyAdminに移動し、WPのDB上でwp_optionsテーブルのsiteurlを変更。要はこちらの記事の通りに作業すべし。WPの管理画面もきちんと動くように戻ります。
  9. 従来、ブログ内の画像・Flashのサンプル・スクリーンキャストのデータ等は、それぞれblogディレクトリ直下の、image,swf, video といったディレクトリに入れて、エントリ内からは <img src=”http://www.trick7.com/blog/image/gazou.jpg”> と絶対パスで指定していたので、これを引き継ぐように、MTである「_blog」ディレクトリから、image,swf, videoの3ディレクトリを先ほどリネームしたWPの「blog」ディレクトリ直下にコピー。
    これで「http://www.trick7.com/blog/」は完全にWordPressブログとなりました。
  10. ブログデザインを変更していく、MTの時に使っていた vicuna テンプレートは、ありがたいことに WordPress 用も用意されている。これをインストールし、スキンのデザインを一番シンプルな「Flat」にする。僕のブログはサイドバーにブログパーツや本の紹介を貼ったりするので、この辺を管理しやすいように、WordPressのウィジェット機能を使おうとするが、いろいろ調べるも、wp.vicuna だと変な li タグが入ってしまったりしてウィジェットが上手く表示されない。幸い vicuna テンプレートの派生バージョンとして、ウィジェットの管理も予め考慮された「wp.Vicuna Ext」が公開されているので、こちらに切り替える。これでWordPressのウィジェットが期待通り表示されるようになった。スキンは同じ Flat スキンを使った。
  11. 旧MTブログのRSSを購読していた人のために、WPディレクトリ内の .htaccess ファイルに転送設定を追記
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} !FeedBurner
    RewriteRule ^index?\.xml$ http://feeds.feedburner.jp/trick7 [L,R=permanent]
    RewriteRule ^atom?\.xml$ http://feeds.feedburner.jp/trick7 [L,R=permanent]
    RewriteRule ^rsd?\.xml$ http://feeds.feedburner.jp/trick7 [L,R=permanent]
    :

プラグイン関連

  • Akismet:
    WordPressにもとから入っているスパムフィルタ
  • Dagon Design Sitemap Generator:
    人が見る用のサイトマップを簡単に作れる。WordPressって、ブログエントリのようにダイナミックにページ生成するだけじゃなく、管理画面左メニューの「ページ>新規追加」から固定ページを作れるらしい。このプラグインを使用設定後、固定ページに <!– ddsitemapgen –> と記述するだけで、http://www.trick7.com/blog/sitemap みたいなページができあがる。
  • Google XML Sitemaps:
    こちらはGoogleのロボットが見にくる用のサイトマップXMLを生成してくれるプラグイン。http://www.trick7.com/blog/sitemap.xml みたいな XML ができる。これをGoogleウェブマスター ツールに通知すればOK。僕は同名のXMLですでに登録していたのでそのまま引き継いだ。
  • FeedBurner FeedSmith:
    WordPressはデフォルトで http://www.trick7.com/blog/?feed=rss2 というURLでRSS2.0のフィードを生成する。これは http://www.trick7.com/blog/feed からもアクセスできる(のかな?)。この2つのURLをFeedBurnerのRSSのアドレス「http://feeds.feedburner.jp/trick7」に転送してくれるようになる。feedburnerを.comじゃなくって.jpで運用してる人は注意!うっかり間違いやすいよ。
  • Ultimate Google Analytics:
    Google Analytics のコードを自動で埋め込んでくれる。プラグインのデフォルト設定では、管理者がログインしている状態でページアクセスしても埋め込みコードが見えない、つまり管理者のアクセスはカウントしない仕様になっているので、埋め込みコードを確認したいときは一旦ログアウトしてからページの HTML ソースを確認しろとのこと。

移行してみて

  • ページの表示が高速になったかといえば、別段そうは感じない。WPはダイナミックパブリッシングなので「DB→生成」がそれなりに時間かかってるってことかな?
  • 旧ブログのサイドバーが混雑して諦めていたのだけど、気分がリフレッシュした。MTでも頑張ればできたけど、カテゴリーが折りたためて嬉しい。月別エントリで投稿数を表示できるので、多少書く気力もアップするかも。
  • デザインもいじっていく予定。旧ブログのデザインが素っ気ない&中途半端だったのは、実はその方が読者の人が気軽にコメント書きやすいかもと思ったりしてたという狙いがあったとかなかったとか。僕自身、なんかデザイン性の高いブログって気軽にコメント書きづらいから。今回もそんなには飾り立てないつもり。
  • ちょうどはてブで「WordPressでブログを作ったらまずやる26項目」ってのが話題なので、おいおいやってみる。
  • エントリ概要と本文との分割は <!–more–> タグを入れるんですね。
  • 画像投稿がうまくいかない。uploadsディレクトリ作って777にして投稿しても、管理画面上では投稿完了するも、uploadsディレクトリが空のまま。→多少分かった。管理画面の「その他の設定>アップロードするファイルの保存場所」がtrick7.com/wordpress/wp-content/uploads のままだったので変更。投稿日時によるディレクトリ分けをオフにすることもできる。
  • 管理画面のページ遷移に5秒ぐらいかかる。

「ブログをMovableTypeからWordPressに移行しました」への13件のフィードバック

  1. おぉ~けんすうさん。
    コメントありがとうございます。新年おめでとうございます。
    僕の周りのブロガーさんもWordPressが多かったり、仕組みがシンプルだとか聞いていたので移行してみました。
    記事の表示スピードが速くなればいいなと思っていたのですが、今のところそういう効果は感じられないようです。もう少し触ってみますです。

  2. デザインあっさりしましたねー^^
    wordpressはphpで書けるので楽ですからねぇ、再構築いらんし。
    個人的にはconcrete5も気になっているところですが。

  3. alumican.netさん
    どうもどうも。テンプレートいじりはおいおいやっていきます。
    僕もconcrete5凄いらしい話は聞いたんですけど、やはり参考記事の数の多さでWordPressにしてみました。
    うーん、でもやはり体感で速くなった気がしないんですよねぇ。。

  4. こんにちは。
    僕も昨日WPに移行しました。
    パーマリンクのところとか、かなり参考にさせていただきました。
    ありがとうございますー。

コメントは停止中です。