問題の概要「更新」ボタンをクリックするのは本来なら嬉しい瞬間です。しかし、代わりに画面が真っ白になり、*「サイトで技術的な問題が発生しています」*という冷たい一文が表示されることがあります。これは非常にストレスが溜まるものですが、実はWordPressのセーフティネット(安全装置)なのです。
WordPressはバージョン5.2で、恐ろしい「真っ白な画面(White Screen of Death)」をなくすためにこの機能を導入しました。これはPHPの致命的なエラー(Fatal Error)が発生したことを意味します。サーバー全体をクラッシュさせるのではなく、WordPressがクラッシュを検知してプロセスを停止させたのです。多くの場合、これは新しいプラグインのバージョンがテーマと競合しているか、プラグインがPHP 8.1以上を必要としているのに、サーバーが7.2のような古いバージョンで動作していることが原因です。
主な原因なぜサイトが突然動かなくなったのでしょうか?通常、以下の3つのいずれかが原因です。
- コードの競合: 2つのプラグインが全く同じ関数名を使用しようとして、衝突が発生している。- PHPバージョンの不一致: 更新されたプラグインが、PHP 8.x以降でしか動作しない最新の機能(Union Typesなど)を使用している。- 転送の失敗: 更新中にサーバーが一瞬不安定になり、プラグインのファイルが不完全な状態で残ってしまった。## 解決策1:WordPressリカバリーモードを使用するこれはデジタルの救急箱です。2019年以降、WordPressはクラッシュが発生するたびに、サイトの管理者に秘密の「リカバリー」リンクを送信するようになりました。これが現在利用できる最も手っ取り早い解決策です。
- 管理者ユーザーに関連付けられたメールアカウントを開きます。- [サイト名] サイトで技術的な問題が発生していますという件名のメールを探します(見当たらない場合は迷惑メールフォルダを確認してください)。- メール内のリカバリーモードのリンクをクリックします。これにより、問題のあるプラグインをあなただけに限定して一時停止させた特別なセッションが作成されます。- プラグイン画面に移動します。- WordPressが問題のあるプラグインを赤色で強調表示しています。無効化をクリックします。- 画面上部のリカバリーモードを終了ボタンを押し、他のユーザーからもサイトが見える状態に戻します。## 解決策2:FTPまたはファイルマネージャーによる「強制停止」リカバリーメールが届かない場合は、手動でプラグインを無効化できます。プラグインのフォルダ名を変更することで、WordPressにそのプラグインを強制的に無視させます。
- FileZillaなどのFTPクライアント、またはホスティングのcPanelを使用してサーバーにログインします。-
/wp-content/plugins/ディレクトリに移動します。- 更新したばかりのプラグインのフォルダを探します(例:contact-form-7)。- そのフォルダ名をcontact-form-7-oldに変更します。- ウェブサイトを更新(リロード)します。WordPressはファイルが「消えた」と判断し、自動的にプラグインを無効化して、サイトを即座に復旧させます。## 解決策3:WP_DEBUGでエラー箇所を特定するどのプラグインが原因か分からない場合は、WordPressの内部エラーログを表示させることができます。デフォルトでは、セキュリティのためにこれらは非表示になっています。 - サイトのメインフォルダにある
wp-config.phpファイルを開きます。-define('WP_DEBUG', false);という行を探し、trueに変更します。- そのすぐ下に、以下の2行を追加します:``` define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
エラーが発生しているページをリロードします。`/wp-content/`フォルダを確認すると、`debug.log`という新しいファイルが作成されています。これを開き、最新のエントリを確認してください。以下のような内容が表示されているはずです:
PHP Fatal error: Uncaught Error: Call to undefined function... in /wp-content/plugins/broken-plugin/index.php:42
このログによって、どのプラグインのどの行がクラッシュの原因になったのかが正確に分かります。
## 解決策4:上級者向けの方法(WP-CLI)SSHアクセスが可能な場合は、ターミナルから数秒で修正できます。プロはこの方法を使います。
- サーバーにSSHでログインし、ウェブのルートディレクトリに移動します。- 現在有効なプラグインを確認するために、次のコマンドを実行します:```
wp plugin list --status=active
怪しいプラグインが見つかったら、停止させます:
wp plugin deactivate plugin-slug-name

