WordPressサイトをまるごとお引っ越しするときに使う All-in-One WP Migration という定番プラグインがあるのですが、無料版だと 1GB前後(ホスティング会社による)でインポートが弾かれるという制限があります。有料版を買えば解決するのですが、 旧バージョンを使ってプラグイン本体のファイルを少しいじると、無料のままで上限を引き上げられる方法があります。

ぼく自身、顧客サイトをまるごと別ドメインに複製する作業でこれを使っているので、忘れない用に手順をまとめておきます。やり方そのものは下のサイトが画像付きでめちゃくちゃわかりやすかったので、ここでは 引用+ぼくの運用メモという形にしています。

引用元(手順の図解はここが一番わかりやすいです)
https://www.caliberelectronics.com/all-in-one-wp-migration/

大まかな流れ

  1. ダウングレード版(v6.68 系)の All-in-One WP Migration を ZIP で用意する
  2. WP管理画面 →「プラグイン」→「新規追加」→「プラグインのアップロード」で ZIP を選択
  3. 既存プラグインがある場合は「ダウングレードを承認しますか?」と確認が出るので「はい」を選ぶ(既存の削除は不要)
  4. 「プラグインファイルエディター」で旧バージョンの constants.php を開く
  5. AI1WM_MAX_FILE_SIZE の行に * 20 など係数をかけて上限を引き上げる
  6. インポート画面で「最大アップロードサイズ」の表示が変わっているか確認 → 通常通りインポート

変更前/変更後のコード例

// 変更前(約512MB)
define( 'AI1WM_MAX_FILE_SIZE', 536870912 );

// 変更後(×20=約10GB)
define( 'AI1WM_MAX_FILE_SIZE', 536870912 * 20 );

係数は 10 でも 100 でも好きな数字でOK。とにかく自分のサイトの容量より大きい値にすればOKです。

注意点

  • ホスティング側の制限が別でかかります。Xserver やロリポップの php.ini に書かれている upload_max_filesizepost_max_size も上げないと、結局そっちで弾かれます
  • 旧バージョンを使うので、CVE(脆弱性情報)が更新されていない期間があるのはリスク。インポートが終わったら すぐに最新版に戻すのがおすすめです
  • インポート中の PHP 実行時間/メモリもチェック。 max_execution_time を 300秒以上、 memory_limit を 512MB以上にしておくと安全です
  • インポート後は、 SiteGuardプラグインのログインURL変更機能Application Passwordがうまく引き継がれない場合があります。そのときは SiteGuardをいったんフォルダごとリネームして強制無効化→通常 wp-login.php でログイン→「設定」→「パーマリンク設定」を保存し直す、で復旧できます

この記事の位置づけ

手順そのものはCaliber Electronicsさんの記事が原典です。ぼくはそこにホスティング側の制限と、移行後ハマりやすいSiteGuard/Application Password周りの実体験を足した形で書きました。WordPressをいじり慣れている先生・コンサル仲間向けの備忘録としてどうぞ。

※プラグインのバージョン書き換えは 自己責任です。重要サイトでやる場合は、必ず 事前にバックアップを取ってから着手してください。