baserCMSからwordpressへ移行の際の覚書です。
弊社が自らbaserCMSを選択することは無いのですが、既存サイトのリニューアルでbaserCMSからWordPressに移行する依頼がたまにあります。
大抵の場合
・テーマ自体の設計(古い)
・baserCMSのバージョン(古い)
・PHPのバージョン(古い)
が絡み合い、どの要素をアップデートしてもサイトが止まる状況です。
当記事もこの状況を前提にしています。
具体的には
baserCMSバージョン: 3.0.1(古い)
CakePHPバージョン: 2.4.3(古い)
PHPバージョン: 5.4.16(古い)
テーマ、サイトを作成した人: 知らない
構造:控えめに言ってめちゃくちゃ。簡単そうなひとつの変更(例えば商品のカテゴリーを変える)で5~10個のPHPを触る必要有り(つまり、作られた年代は関係無く、全く現場での運用を考えていない設計)。
という状況で引き継いだ場合です。
baserCMSから記事情報をエクスポートしてみる
なにかプラグインが有りそうですが、上記の状況で動くことはまず有りません。
また、WordPressも同様ですが、バージョンが最新版と大きく異る場合、いきなりアップデートすることは不可能で、細かく刻んでアップデートすることになります。
今後baserCMSを使わない以上、それは面倒なので、他の方法で既存の記事をエクスポートしてみます。
phpMyAdminでデータベースを確認
とりあえずphpMyAdminでデータベースを確認してみます。
mysite_pagesテーブルがWordPressで言う固定ページ
mysite_pg_blog_postsテーブルがWordPressで言う「投稿」と「カスタム投稿タイプ」のコンテンツっぽいですね。
MySQLからCSVでダウンロード
コンテンツをCSVでダウンロードできれば、WordPress側でなんとかインポートできそうです。
エクスポートから、フォーマットをCSV、「1行目にカラム名を追加する」にチェックを入れてダウンロードしてみます。
CSVを開いてみると(画像はLibreOffice)、WordPressで使えそうな項目が並んでいます。
例えばblog_content_idはカスタム投稿タイプっぽいので「mysite_pg_blog_contents」のidとnameで置換。
blog_category_idはカスタムタクソノミーっぽいので「mysite_pg_blog_categories」のidとnameで置換。
他にも置換出来る部分は置換して、コンテンツ内容も一括で編集できる部分は編集、CSVインポーター系のプラグインを利用してWordPressに取り込めそうです。
続きはまたアップします。