2026年5月20日

2026年5月20日

WordPressプラグイン更新後にサイトが壊れた場合の復旧方法

はじめに

プラグインを更新した直後にサイトが真っ白になったり、致命的なエラーが表示された場合の緊急復旧手順を解説します。管理画面にアクセスできない場合の対処法も含めて説明します。

解決手順

ステップ1:WordPressの自動復旧機能を確認する

WordPress 5.2以降、致命的エラーが発生すると管理者メールに「テクニカルエラーが発生しました」というメールが届きます。メール内のリンクから「エラー復旧モード」にアクセスすると、プラグインを無効化できます。

// wp-config.php — 復旧モードを手動で有効化
// wp-login.php?action=entered_recovery_mode にアクセス
// またはメール内のリンクをクリック

ステップ2:WP-CLIで問題のプラグインを無効化・ダウングレードする

# 最後に更新したプラグインを特定
wp plugin list --fields=name,version,update_version,status

# 問題のプラグインを無効化
wp plugin deactivate contact-form-7 --skip-plugins --skip-themes

# 以前のバージョンにダウングレード
wp plugin install contact-form-7 --version=5.8 --force

# サイトの状態を確認
wp eval "echo 'OK';"

ステップ3:管理画面にアクセスできない場合(FTP/SSH)

# SSH でプラグインフォルダをリネームして無効化
cd /home/username/public_html/wp-content/plugins/
mv contact-form-7 contact-form-7_disabled

# または全プラグインを無効化
mv plugins plugins_backup && mkdir plugins

# 管理画面にアクセスできるようになったら、プラグインを1つずつ戻す

ステップ4:データベースからプラグインを無効化する

-- phpMyAdmin で active_plugins を更新
-- contact-form-7 を除いた値に更新(または全無効化)
UPDATE wp_options
SET option_value = 'a:0:{}'
WHERE option_name = 'active_plugins';

ステップ5:バックアップからの完全復旧

# データベースを更新前のバックアップから復元
wp db import pre-update-backup.sql

# ファイルをバックアップから復元(FTPまたはscp)
# プラグインフォルダを旧バージョンのものに差し替え

# 復元後に確認
wp core version
wp plugin list --fields=name,status,version

# キャッシュをクリア
wp cache flush
wp rewrite flush

ステップ6:デバッグログで根本原因を確認する

// wp-config.php — エラー詳細を記録
define('WP_DEBUG',         true);
define('WP_DEBUG_LOG',     true);
define('WP_DEBUG_DISPLAY', false);
# ログを確認
tail -50 wp-content/debug.log

# PHP エラーログを確認(サーバーによってパスが異なる)
tail -50 /var/log/php_errors.log

注意事項

  • 更新前に必ずバックアップを取得する習慣をつけてください(wp db export + ファイルバックアップ)
  • WooCommerceなど重要プラグインの更新はステージング環境で事前テストしてから本番に適用してください
  • 復旧後は問題のプラグインの auto_update_plugin フィルタを false にして再発を防いでください

まとめ

プラグイン更新後の障害は「WP-CLIで無効化→ダウングレード」が最速の対応です。管理画面にアクセスできない場合はFTPでフォルダリネームまたはphpMyAdminで active_pluginsa:0:{} に更新して全プラグインを無効化してください。

お気軽にご相談ください

お見積りへ お問い合わせへ