先日こんな記事を書きました。
XOOPS→Wordpressへの「データ移行」作業をまとめた記事です。
そうしたところ、今度はbaserCMS→WordPressへ「データ移行」をしたい、というご依頼をもらいまして。
いや、どうだろう。XOOPSはいけたけど。すんなりいくかなぁ~……?正直めんd……難しいかもなぁ。
XOOPSの場合はPHP8だと動作しないから喫緊の課題だけど、baserCMSは問題なく運用可能です。
「そのまま運用なさったらいいんじゃないですかねぇ」と打ち合わせの席をもう帰りたくてしょうがないほど逃げ腰な私。
すると社長が「うちは複数WEBサイトを運営していて、他は全部WordPressです。更新マニュアルを統一して社員の負担を減らしたいのです!お聞きしたところ、井元さんはこういった作業が超優秀なんだとか。それでお越しいただいた次第でして……。お願いします!」
あらやだ。どなたからその超優秀だとかお聞きになったのかしら?まあ、私が本気出せばいけますけど。でもちょっとお高いわよ。
とつい調子に乗ってしまったところ、あれよあれよと商談が進み、受けざるをえない状況になってしまい……。「いったん検証させてください」と持ち帰る羽目になりました。
必死こいてなんとかかんとか検証していたところ、baserCMS→WordPressへの「データ移行」に成功してしまいました……!よかったホッ。
というわけで、baserCMS→Wordpressへの「データ移行」作業をまとめてみました。なので備忘録。これからやる人はよかったら参考にしてください。
おおまかなイメージ
baserCMS→WordPressへまるっと移行、ではなく、コンテンツごとにバラバラに移行するのがポイントです。ここはXOOPSと同じですね。
まずは、新規でWordPressを用意。コンテンツ用にカスタム投稿タイプを各々準備します。baserCMSは固定ページとプラグインでブログを複数設置できるので、固定ページとブログごとにそれぞれデータを移行するイメージです。。
おおまかにこんなイメージです。
固定ページ | → 固定ページ |
blog | → 純粋なブログはpostがいいでしょう |
blog2 | → カスタム投稿タイプblog2 |
blog3 | → カスタム投稿タイプblog3 |
ローカル環境を用意
できればローカル環境を用意して、そこでトライしたほうがいいです。エラー文が出てトラブるようなことはほとんどないとは思うけど、データがどのように移行されるのかテスト環境で確認したほうが間違いが少ないと思います。いきなり本番サイトへ移行して、思ったところにきちんとデータが入らなかった場合、全データを巻き戻すはめになり、萎えます。
記事タイトルと本文をcsvでエクスポートしよう
プラグインのデータをそっくり移行しようとはせず、記事の「タイトル」「本文」これだけをcsvでエクスポートします。
phpMyAdminを開いて以下を選択します。
固定ページの場合 | (接頭辞)_pages |
ブログの場合 | (接頭辞)_blog_categories (接頭辞)_blog_posts |

エクスポート方法: | 詳細-可能なオプションをすべて表示 |
フォーマット: | [CSV]を選択 |
出力: | ファイルの文字セット[SHIFT_JIS]を選択 ※1 |
フォーマット特有のオプション: | [1行目にカラム名を追加するに]にチェックを入れる |
エンコーディングへの変換: | [SJIS]を選択 ※1 |
[エクスポート]をクリックする |
※1 ExcelはSHIFT_JISで読み込まれるため、それ以外の文字セットだと文字化けします。それでもうまくいかない場合は、エンコーディングへの変換は「なし」でエクスポートするなど、組み合わせをいろいろやってみてください。レンタルサーバーによってまちまちでしたので。
csvファイルを編集しよう
エクスポートしたcsvファイルを開いてみましょう。文字化けはしていませんか?文字化けしていたら文字セットに注意してもう一回phpMyAdminでエクスポートしてみてください。
OKだったらファイルを保存します。その際「UTF-8」で保存してください。Excelの「ファイル」メニューから「名前をつけて保存」をクリックし、ファイル形式「CSV UTF-8(コンマ区切り)(.csv)」で保存します。
【プチカスタムフィールドプラグインがある場合】
プチカスタムフィールドプラグインのデータは、各々入力フィールドを抽出するのが大変……。残念ながら一括でインポートができません。私は、WordPressへ移行後にAdvanced Custom Fieldsプラグインをインストールして手作業でコピペしました……(超めんどかったw)
【ブログの場合】
ブログの場合は日付データも正確に移行したいですね。baserCMSはUnix Timeではなく、WordPressと同じData型なので変換は不要です。そのままでOK!
【ブログが複数の場合】
ブログのデータは「(接頭辞)_blog_categories」「(接頭辞)_blog_posts」テーブルに混在して格納されています。
csvファイルの編集の際、「blog_content_id」で並べ替えて、下表のようにそれぞれ別ファイルにしましょう。
(接頭辞)_blog_posts.csv | → (接頭辞)_blog_posts.csv → (接頭辞)_blog1_posts.csv → (接頭辞)_blog2_posts.csv |
WordPressにインポートしよう
さあ、いよいよWordPressへインポート。最後の工程です。
【固定ページに移行する場合】
親ページが必要であれば、事前に固定ページで親ページを作成しておきましょう。
【カスタム投稿タイプに移行する場合】
WordPressへのカスタム投稿タイプの準備は済んでいますか?今一度確認。
編集したcsvファイルを、WP All Importプラグインでアップロードしていきます。
WP All Importプラグインの使い方はいろんなサイトで説明がされていますので、ググってみてくださいね。

おわり
お疲れ様でした~。どうでしたか?うまく移行できましたか?自分でやってみて、どうしてもうまくいかなかったら弊工房までご依頼くださいな♪
ただ、作業料金は、残念ながら決して安くはありません。結局CMSを新規で立ち上げるわけだから、構築費はゼロベースとはいかないまでもそこそこかかります。
できうることならリニューアルも兼ねてやりましょう!そのほうがメリットがデカいです。ちなみに今回のお客さんも全面リニューアルで、とっても喜んでもらいました。これを機に新たに見直すいい機会ととらえて移行を検討すると良いと思います!
コメント