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_plugins を a:0:{} に更新して全プラグインを無効化してください。