こんにちは、kawaguchiです。
WordPressで動いていたエンディングパークを去年の6月頃にRailsで書き直しました。</br> その時にやったことを思い出しながら書きます。
gemのこと
WordPressのカテゴリはツリー構造になっていたので、ancestryというgemを使って同じデータ構造を作りました。
タグはacts-as-taggable-on。
画像アップロードはpaperclip。
認証はsorcery。
認可はcancan。
そういえば開発当時は、Rails4のベータで出たばかりでした。
データ移行のこと
記事データは、データベースをcsvにエクスポートして、Rails側で取り込みました。
アイキャッチも同じくcsvを使い、記事IDをキーにしてファイルパスを取得して画像の移行をしました。
静的ファイルは、スクレイピングをして取り込みました。
SQL
WordPress時代のエンディングパークは、記事と辞典がメインコンテンツでした。
その記事と辞典で期待するレコードを吐くにはSQLがだいぶ違うこともあり、↓みたいな顔してSQLをこねていました。
画像・cssの移行のこと
Wordpressの管理画面からアップロードされた画像とtheme配下のassetsは、app/assets配下にそのままコピーし、
移行スクリプトの中で、今回取り込んだHTMLテキストのaタグに書いているパスをRails用のパスに書き換える処理を走らせました。
あわせて読みたい
WordPressには「あわせて読みたい」という類似記事(?)を表示するプラグインがあります。
Railsでどう実装しようか考えた結果、記事中に同じ単語が含まれているかでスコアリングして関連記事を抽出するようにしました。
自動キーワードリンク
同様に、本文中にある単語が任意の単語もしくは、記事に一致する場合にリンクを貼るプラグインがあります。
こちらも実装をしました。
レコード数が少ないので今は正規表現で対象の置換をしています。
URL
WordpressとRailsではURLが若干変わっているのでnginxでリライトするようにしました。
検索エンジンの評価やアクセス数が下がったようなことはなかったと思います。
まとめ
WordPress爆発しろ!!