開発環境から本番環境への移行で失敗した
非公開の開発用のURLで、作成したサイトを本番用のサイトに移行するときにうまくいきませんでした。
単純にファイルとDBが一致すれば問題ないと考えて、以下の作業を実施しました。
・DBの設定情報が書いてあるwp-config.php以外のファイルをFTPで移行
・phpMyAdminでデーターベースをエクスポートして、テキストエディタで旧ドメインを新ドメインに一括変換後、本番環境のphpMyAdminでインポート
この作業で、開発環境の状態をまるまる復元できるかと思っていましたが、テーマオプションの値やウィジェットの設定値が反映されませんでした。投稿記事や固定記事、メディアの情報は正常に移行されていました。
wp_options や wp_postmeta にはシリアライズされたデータが入っている
簡単にいうと、文字列の長さをカウントしています。URLの長さが変わる場合、整合性があわなくなり、設定した値が正常に反映されません。
対応方法は、以下のツールを使って、ドメインを変換する必要があります。
DATABASE SEARCH AND REPLACE SCRIPT IN PHP
現時点での最新はV.3.1です。
開発環境は本番環境と同じ長さのドメインにすればよい
上記のツールで解決できるみたいですが(試していません)、もともとの開発環境のドメインを本番環境と同じ長さにすれば問題ありません。
例えば、
本番:aaaaaaaaaaa.com
開発:aaaaaaaaaaa.xyz
のようにすれば、テキストエディタでsqlファイルを一括置換すれば問題ありません。お名前コムなどでは最初の一年間は30円とかで取得できますので、開発用のドメインとして一年のみ契約するのもありです。