<- すべての記事 WordPress 移行

なぜsearch-replaceはシリアル化対応なのか

公開日 2026年6月14日

シリアル化されたデータを壊さずにWordPressサイトのURLを変更する方法。

Conceptmigrate-toolkit.bitechlab.com

問題点

WordPressは多くのオプションをPHPシリアル化データの形式で保存します。この形式は各文字列の長さをエンコードします。単純なSQLの検索/置換で異なる長さのURLを置き換えると、宣言された長さが一致せず、WordPressはデータを読み取れなくなります。

具体例

シリアル化されたsiteurlオプション。s:25は25文字の文字列を示しています。

a:1:{s:7:"siteurl";s:25:"https://ancien-domaine.com";}

単純な置換(長さが間違っており、データが壊れる):

a:1:{s:7:"siteurl";s:25:"https://nouveau-domaine.com";}

シリアル化対応(長さが再計算される):

a:1:{s:7:"siteurl";s:26:"https://nouveau-domaine.com";}

ツールの処理方法

  1. 値がシリアル化されている場合、それをデシリアライズします。
  2. 配列、オブジェクト、ネストされた文字列を再帰的に走査します。
  3. 古い文字列を新しいものに置き換えます。
  4. 再シリアライズします:PHPが自動的に長さを再計算します。

結果:異なる長さのドメインに変更しても、ウィジェット、メニュー、Elementorの設定が壊れることはありません。

手間なく WordPress を移行

WP Migrate Toolkit は SSH なしで、FTP でファイル + データベースを移動します。

CLI をダウンロード プラグインをダウンロード