WordPress から baserCMS5 へコンテンツを移行するためのプラグイン「BcWpImport」を作りました。
WordPress 標準のエクスポート機能で取得できる WXR(WordPress eXtended RSS)ファイルを、baserCMS5 の管理画面からアップロードし、内容を確認したうえでブログ記事や固定ページとして一括登録できます。
株式会社キャッチアップで働くエンジニアのブログです。
WordPress から baserCMS5 へコンテンツを移行するためのプラグイン「BcWpImport」を作りました。
WordPress 標準のエクスポート機能で取得できる WXR(WordPress eXtended RSS)ファイルを、baserCMS5 の管理画面からアップロードし、内容を確認したうえでブログ記事や固定ページとして一括登録できます。
WordPress から baserCMS5 へ移行したい場面はありますが、記事・固定ページ・カテゴリー・タグ・著者の扱いを毎回手作業で調整するのはかなり大変です。
たとえば、
といったことを、管理画面から扱いやすくするために BcWpImport を開発しました。
BcWpImport は、WordPress からエクスポートした WXR ファイルを baserCMS5 に取り込むためのプラグインです。
WXR は WordPress が標準で書き出す XML 形式のエクスポートファイルで、投稿・固定ページ・カテゴリー・タグ・著者などの情報を含めることができます。
BcWpImport では、この WXR ファイルをアップロードして解析し、取り込み対象や著者マッピング、スラッグ重複時の処理、公開状態、URL 置換などを設定したうえで、baserCMS5 側へ登録できます。
初版では、次のデータを対象にしています。
| WordPress 側 | baserCMS 側 | 備考 |
|---|---|---|
| post(投稿) | ブログ記事 | 取込先ブログの指定が必要 |
| page(固定ページ) | 固定ページ | コンテンツ配置先は要調整 |
| category(カテゴリー) | ブログカテゴリー | 対象ブログ配下へ自動作成 |
| post_tag(タグ) | ブログタグ | 対象ブログ配下へ自動作成 |
| author(著者) | baserCMS ユーザー | 同名割当または一括割当 |
一方で、初版ではカスタム投稿タイプ、コメント、attachment の完全取込、WooCommerce など特定プラグイン由来のデータは対象外としています。
まずは WordPress の標準的な投稿・固定ページ移行にフォーカスしています。
WXR ファイルは WordPress 管理画面から取得できます。
ダウンロードされる .xml ファイルを、そのまま BcWpImport にアップロードできます。
動作確認用としては、WordPress 公式テーマユニットテストデータや日本語版テーマユニットテストデータを使うのも便利です。記事・固定ページ・カテゴリー・タグ・著者など、いろいろなパターンが含まれているため、取り込み確認に向いています。
BcWpImport では、単に XML を読み込むだけでなく、移行作業で確認したくなる要素を管理画面で扱えるようにしています。
特に、取り込み前に解析結果を確認できることと、取り込み後に結果 CSV を確認できることは、実案件での移行作業を進めやすくするために重視しています。
取り込み時には、次のようなオプションを選択できます。
| オプション | 選択肢 |
|---|---|
| 取込対象 | 全件 / 投稿のみ / 固定ページのみ |
| 著者マッピング | 同名ユーザーへ割当 / 指定ユーザーへ一括割当 |
| スラッグ重複時 | 連番付与 / スキップ / 上書き |
| 公開状態 | 元の状態を維持 / すべて下書きで取込 |
| URL 置換 | WordPress URL のまま維持 / 指定ドメインへ置換 |
移行作業では、いきなり公開状態のまま取り込むより、まずは下書きで取り込んで内容を確認したいケースも多いと思います。
また、移行先で既に同じスラッグのコンテンツがある場合もあるので、スラッグ重複時の挙動を選べるようにしています。
管理画面では、次のメニューから操作できます。
/baser/admin/bc-wp-import/wp_imports/indexWXR ファイルをアップロードし、解析結果を確認してから取り込みを開始する流れです。
処理中はログを確認できるため、大量データの取り込み時にも進捗を把握しやすくしています。
plugins/BcWpImport/ に本プラグインを配置する設定値は config/setting.php で変更できます。
| キー | 初期値 | 説明 |
|---|---|---|
BcWpImport.jobExpireDays |
3 |
ジョブ(アップロードファイル含む)の保持日数 |
BcWpImport.batchSize |
100 |
一度に処理するアイテム件数 |
このプラグインは、たとえば次のようなケースを想定しています。
WordPress から baserCMS5 への移行は、案件ごとに調整が必要になることも多いですが、まず標準的な WXR を扱える土台があるだけでも、作業の見通しはかなり立てやすくなると思います。
BcWpImport は、WordPress 標準の WXR ファイルを baserCMS5 へ取り込むためのプラグインです。
投稿・固定ページ・カテゴリー・タグ・著者といった基本的なコンテンツ移行を、管理画面から確認しながら進められるようにしました。
まずは WordPress の標準エクスポートデータを使った移行や検証に使ってもらえたらうれしいです。
カスタム投稿タイプや添付ファイルの完全取込などは初版では対象外ですが、今後の拡張ポイントとしても考えやすい構成にしています。
baserCMS5 への移行を検討している方にとって、少しでも作業を進めやすくするプラグインになればと思っています。