WordPressインポートでpost_idが変わった?
WordPressで作られたWebサイト(ホームページ)を別のサーバーへ移転する、いわゆるWordPressの引っ越しの方法は、いくつかあるのですが、[ホームページ引っ越しサービス]では、基本的には、
データベースのエクスポート&インポートと、ファイルのダウンロード&アップロード
で行っています。
この方法なら、全部丸ごと移転するので、新旧の違いも無いからです。
WordPressのエクスポート&インポートツールを使った移転
ただ、たとえば、
- 移転のついでに、WordPressテーマやプラグインを替えてリニューアルするので、余計なデータを移転先のデータベースに持って行きたくない
- WordPressのバージョンが古くて、丸ごと移転しても新サーバーで動かせない、また、今のサーバーでWordPressのバージョンアップをすることもできない
といったケースでは、
WordPressの「XMLファイル」エクスポート&インポートツールと、その他の方法を組み合わせて
行っています。
もちろん、これまで、それで特に問題はありませんでした。
WordPressインポートで、post_idが変わってしまった
ところが先日、「XMLファイル」をインポートしたところ、一部の投稿記事で、「post_id」(投稿の固有ID)が、移転元と違っている(IDが振り直されている)現象がありました。
しかも、パーマリンク設定が「カスタム構造」で、「/%post_id%」を使っているため、「post_id」の違いはURLの違いとなり、これでは、同じ個別投稿ページなのに新旧でURLが異なってしまいますので、問題です。
post_id振り直し問題解決のためにしたこと
同様の現象が他所でも発生していないか、ネットで調べたところ、やはりいくつか出てきたのですが、その解決方法については、「それはちょっと・・・」というのがほとんどでしたので、
- 通常のインポートでは、post_idも、そのまま保持される
- post_idは、一意なので、振り直しされるとすれば、重複が見つかったときだけ
- 移転元のWordPressは、正常に動いているので、少なくとも有効なデータのpost_idは、問題ないはず
と考え、下記の手順を試してみました。
- 移転先のデータベースを、WordPressインストール直後のものに戻す
(移転先の部屋を空っぽにする) - 移転元でエクスポートする際、ステータスは「公開済み」を選択
(使っていないものは、引っ越し用トラックに乗せない) - 移転先でインポート
これで、「post_id」は、無事、移転元と移転先で、一致しました。
最初うまくいかなかった原因が、
- 移転先に余計なものがあったせいなのか(無かったと思うのですが・・・)
- 「XMLファイル」に、「自動下書き」と「下書き」のデータが入っていたせいなのか(これらの「post_id」が重複していたわけではないのですが・・・)
- その他、何か問題があったのか
は、わかりませんが、いずれにしましても、WordPressの「XMLファイル」エクスポート&インポート機ツールを使っても、ちゃんと移転できる、ということを改めて確認できた出来事でした。