テーマ有効化直後にHTTP ERROR 500になった時の対処法【WordPress】

WordPressでテーマを切り替えた直後に、画面が真っ白になり「このページは動作していません HTTP ERROR 500」と表示されて、管理画面にすら入れなくなってしまうことがあります。この記事では、実際に私が遭遇した時の状況と、復旧の手順を紹介します。

テーマの変更直後にHTTP ERROR 500が出た時の状況

テーマの仕組みやGitHubをよく知らない状況で、GitHubからダウンロードしたWordPressのテーマ(のはずのもの)をthemeフォルダにコピーしたところ、とりあえずWordPress管理画面の「外観」にテーマが表示されました。「じゃあ」ということで早速テーマを「有効化」したその瞬間、画面が真っ白になり、ブラウザには「このページは動作していません HTTP ERROR 500」の表示が。

HTTP ERROR 500はInternal Server Errorという意味で、Webサーバーが処理をうまく完了できなくなってしまった状態を指します。「やっちまった!」と管理画面ではなく通常のサイトURLを開いても、同じく「このページは動作していません HTTP ERROR 500」の表示が…まさにやっちゃいました。

復旧のためにまずやること

復旧のためにまずやることはただ1つです。

やること

FTPクライアント、またはSSH等で直接サーバーに接続し、themeフォルダの中にある、原因となったテーマのフォルダ名を変更する

これだけです。フォルダ名を変えることで、WordPress側からはそのテーマが「存在しないもの」として扱われ、強制的に読み込みが止まります。

その後の復旧手順

フォルダ名を変更すると、管理画面が表示できるようになります。「外観」のところに、原因となった選択中のテーマの部分には「テーマがありません」と表示されるはずです。変更する前に使っていたテーマを選択し直せば、元通りに戻ります。

⚠️ なぜフォルダ名を変えるだけで直るのか

WordPressは、有効化されているテーマに不具合があったり、フォルダが見つからなくなった場合に、自動的にデフォルトテーマ(Twenty Twenty-Fourなど)にフォールバックする仕組みを持っています。フォルダ名を変えることでこの仕組みが働き、エラーの原因になっていたテーマの読み込み自体を止められる、という理屈です。ただし、この仕組みが機能するにはデフォルトテーマが最低1つサーバー上に残っている必要があるので、普段からデフォルトテーマは削除せずに残しておくことをおすすめします。

まとめ

  • テーマ有効化直後の500エラーは、そのテーマ自体に問題があるサインのことが多い
  • 管理画面にも入れない場合は、FTP/SSHでthemeフォルダ内の該当テーマのフォルダ名を変更すれば強制的に読み込みを止められる
  • フォルダ名を戻す前に、元々使っていたテーマに一度切り替えておく

Internal Server Errorが表示されると、管理画面も通常画面も真っ白になってマジで焦ります。ただ、思ったよりも簡単な方法で復旧できることが多いので、慌てず対処しましょう。仕組みがよく分からないテーマやプラグインを試す時は、いきなり本番環境に適用せず、ローカル環境やテスト環境で確認してからにするのがおすすめです。