カスタム投稿タイプは投稿のまとまりを別にできる便利な機能なのですが、ちょっと困ったことが起きました。それは
- カスタム投稿タイプで作った投稿を別のWordPressサイトの通常投稿へ移行できない
- 通常の投稿を別のWordPressサイトのカスタム投稿タイプへ移行できない
ということ。
WordPress標準の機能である「エクスポート」から、投稿でもカスタム投稿タイプで作った投稿でも簡単にエクスポートはできますが、インポートする際には受け手(インポート側)のサイトが同じカスタム投稿タイプを持っていないとインポートされないのです。
今回初めて構造の違うサイト同士の投稿の移行をしましたが、まさかこんなところで躓くとは思いませんでした。数が少なければコピーすれば済む話かもしれませんが、htaccessを使って301リダイレクトしたいような場合にはスラグ構造が変わってしまうのは具合が悪いので、この際きっちり手順を踏んでやってみよう!!ということでさっそくトライしました。
移行の考え方
上記で挙げた2つの「できない」ことは、よく考えれば同じであることが解れば問題解決です。
ざっくりした流れは
- インポートするサイトでエクスポート元と同じ環境(投稿タイプ)を作る
- 元サイトからエクスポートする
- 新サイトへインポートする
- 新サイトの投稿タイプをカスタム投稿タイプから通常の投稿へ変更する
でしょう。逆にエクスポート元で通常の投稿へ戻してからエクスポートすればインポート側のサイトでわざわざカスタム投稿タイプを作ることもなく作業が完了します。が、今回はカスタム投稿タイプで作成した投稿を通常の投稿へ戻すのは投稿数が多いので後で選別が大変になることを考慮して、インポート側でメンテナンスを行うことにしました。
移行作業で使えるのはやっぱり「プラグイン」
私の場合はカスタム投稿タイプを作る際
で作っているので、インポート先のサイトでも同じプラグインを使い、設定自体は元のサイトから移行すれば完了!こんなとき本当に「custom post type ui」というプラグインは本当に便利だと実感しますね。
そして、インポート側のサイトでインポートしたカスタム投稿タイプの投稿タイプを通常に戻すため
を使いました。一括変換できる
もあるのですがちょっと慎重にやりたかったので1つ1つ投稿タイプを変更することにしました。

準備が終わればあとは簡単
環境を揃え、インポート後の投稿タイプ変更の準備もできたらあとは流れ作業。まずは元サイトからカスタム投稿タイプの投稿をエクスポートして、新サイトへインポート、投稿タイプを変更して作業終了です。
同じような作業で困っている方の参考になればと思います

