functions.phpを編集したらサイトが真っ白になったときの復旧方法

この記事はこんな人向けです
  • テーマの functions.php を編集後、画面が真っ白になって管理画面にも入れない
  • syntax error / Fatal error が出ているが、どこから直せばいいか分からない
  • 自力で復旧できるか・外注すべきかの判断基準と、復旧の全体像を知りたい

WordPressレベル別 対応難易度

Lv1 Lv2 Lv3 Lv4 Lv5 Lv6 Lv7
レベル判断は、右のレベル表(スマホは画面下)を参考にしてください。

赤:外注推奨 オレンジ:条件付き自力可 緑:自力対応可

functions.phpで真っ白になったときの全体像と対応方針

原因の多くは記述ミス(カンマ/セミコロン/波カッコ)やPHPバージョン非対応、他プラグインとの衝突です。
基本は「画面復帰 → 原因の切り分け → 恒久対策」の順で修正していきます。
まずはFTP/SFTPやホスティングのファイルマネージャーで安全に元に戻せる状態を作り、管理画面に復帰してから落ち着いて見直しましょう。

functions.phpでサイトが真っ白になったとき ~WordPressレベルごとのおすすめ対応

まずは「これ以上悪化させない」

functions.phpはテーマの中枢です。1文字の誤記でも画面が真っ白になったり500エラーになったりします。さらに焦って触ると、子テーマでなく親テーマを直接編集→アップデートで変更が消える…という二次被害も起きたりします。

赤レベルの方は、無理に修正しようとするのではなく、復旧に必要な情報の整理に注力し、外注することをおすすめします。

  • いつ・どのファイルを編集したか(テーマ名/パス)
  • 表示中のエラー文や現象(真っ白、500、Critical Error 等)のスクショ
  • ホスティング情報(サーバー会社、プラン、PHPバージョン)

この3点をそろえて外注すれば、原因の当たりがつけやすく、短時間で復旧しやすいです。無理に自己流で直そうとすると、.htaccessやwp-config.phpまで触って症状をこじらせることもあるので要注意です。

編集を元に戻してから原因を切り分け

画面が真っ白になっていては管理画面にも入れない(=テーマのPHPが致命的エラー)ので、FTP/SFTPまたはサーバーのファイルマネージャーを使って修正していきます。流れは次のとおりです。

  • 1) 編集前に戻す:バックアップがあればファイルの差し戻し。なければ、直近で加えた追記部分を一時コメントアウト、または削除して復帰を目指します。
  • 2) 子テーマ運用か確認:もし親テーマ直編集なら、復旧後に子テーマへロジックを移す前提で対応していきます。
  • 3) リカバリーモード:一部環境ではエラーメールの「リカバリーモード」リンクからログイン→問題のテーマ/プラグインを一時停止できます。
  • 4) 衝突切り分け:復帰後に最近入れたプラグインを停止、デフォルトテーマ(Twenty Twenty系)への切り替えで再現を確認します。
  • 5) ログ確認:エラーログ(ホスティングのエラーログ機能など)で関数名・ファイルパス・行番号を特定し、編集点と照合してください。

ポイントは「真っ白な画面を表示できるように戻してから調査」するということです。

編集を重ねるほど原因が複雑化します。復旧できない、もしくはPHP 7→8系での非推奨関数などバージョン絡みの疑いを感じたら、早めに外注へ切り替えるのも手です。

安全策→再現→恒久対策の三段階

緑レベルの方は、最初にバックアップ(DB/ファイル)検証用ステージングを確保し、ロールバック手段を用意してから触ります。代表的な観点は以下。

  • A. 画面復帰:直近編集の差し戻し、テーマの一時切り替え、必要なら一時的に functions.php の該当フックを切り離して最小構成で起動確認。
  • B. 再現性の確保:ステージング環境で同じPHPバージョン/拡張を再現。メモリ制限/実行時間、OPcache、マルチサイト有無も確認。
  • C. 原因特定:エラーログから未定義関数/未定義変数/名前空間/戻り値型の不整合、条件分岐の順序、フックの実行タイミング、依存プラグインの読み込み順を精査。
  • D. 恒久対策:子テーマ運用、ガード節(存在確認/is_admin/REST判定)、バージョン分岐、PSR準拠の命名やautoload整理、将来の更新耐性を確保。

仕上げにHealth CheckでモジュールやREST API/ループバックを確認し、権限(644/755)や所有者を見直し。編集はGitで管理し、レビュー→デプロイの流れを固定化すると再発を防げます。

functions.php改修を外注する場合のポイント

「今日中に復旧したい」「顧客サイトで止められない」という状況では、専門家に任せるのが結果的に最短です。費用・流れ・準備物を押さえておきましょう。

項目ポイント
費用の目安 ・編集差し戻し+軽微な調整:10,000~20,000円
・衝突調査+恒久対策(子テーマ化/互換対応):30,000~80,000円
・緊急即応(夜間/当日内):+20~50%の特急加算が一般的
依頼の流れ 1. 状況共有(エラー画面/いつ何を編集したか/サーバー情報)
2. 概算見積→合意
3. バックアップ取得のうえ復旧作業→原因説明→再発防止策の提案
準備しておくと便利 ・サーバー管理画面/FTP(SFTP)の接続情報
・使用テーマ(親子の関係)と直近の編集内容メモ
・ホスティングのエラーログの出し方(見つからなければURLだけでも)
・サイト運用上の制約(停止できない時間帯、キャッシュ/CDN有無 など)

functions.php編集で真っ白な画面になったときのよくある質問

管理画面に入れないとき、最短の復旧手順は?

FTP/SFTPまたはサーバーのファイルマネージャーでテーマフォルダを開き、直前に編集したfunctions.phpの変更を元に戻すか、一時的にファイル名を変更(functions.php → functions-temp.php)して致命的エラーを回避します。復旧後に原因の調査と修正の対応を行います。

バックアップがない/何を直したか覚えていない場合は?

編集箇所が不明な場合は、まず「functions.phpを一時的に避難」してサイトを表示できる状態に戻します。FTP/SFTPでテーマフォルダを開き、functions.php を一度リネーム(例:_functions.php)してみてください。これで白画面が解消すれば、functions.php内にエラーがあります。

その後、元のファイルをローカル(PC)にダウンロードし、テキストエディタで構文チェック(カッコ・セミコロン・PHPの閉じタグなど)を行いましょう。

どうしても特定できないときは、サーバーのエラーログを確認して「行番号」や「関数名」を手掛かりにするか、早めに外注へ切り替えるのが安全です。

子テーマではなく親テーマを直接編集してしまった…どうする?

画面が真っ白な状態で焦っていては余計悪化しかねませんので、まずは画面復帰を最優先しましょう(バックアップから戻す/一時無効化)。
そして復旧後に子テーマを作成し、改修した処理を子テーマ側に移設します。
親テーマ直編集はアップデートで上書きされるため、再発の原因になりますので注意しましょう。

リカバリーモードのメールが届かない/リンクが見つからない

環境によってはリカバリーモードが動作しないことがあります。その場合は手動復旧(FTPやファイルマネージャーでfunctions.phpの変更を戻す/問題のプラグインを一時的にリネーム 等)でログイン可能な状態にしてから、管理画面で再度無効化・調整を行ってください。

PHP8系に上げたらFatal errorやDeprecatedが出る

非推奨関数や戻り値の型宣言の不整合が原因のことがあります。エラーログの関数名と行番号を手掛かりに、条件分岐の順序やフックの実行タイミング、依存プラグインの読み込み順も含めて見直してください。互換性のないコードはバージョン分岐や代替関数で対応します。

どこまで自力でやるべき?外注の判断基準は?

「変更点が特定できない」「FTP操作に不安がある」「業務やクライアントサイトで停止時間を最小化したい」なら外注が安全です。状況(いつ/どのファイルを編集・エラー画面のスクショ・サーバーとPHPバージョン)を揃えて依頼すると短時間で復旧しやすくなります。

再発を防ぐためのベストプラクティスは?

子テーマ運用・ステージング環境での検証・Gitによる変更履歴管理・レビュー(ダブルチェック)を固定化します。Health CheckでREST APIとループバック、権限(644/755)や所有者も確認しておくと安心です。

まとめ

functions.phpの変更で画面が真っ白になったときは、一旦画面を復帰させてから原因を切り分けるのが最短ルートです。編集前への差し戻し、衝突確認、ログでの特定という王道を踏みましょう。

は無理せず外注、オレンジは差し戻しと基本の切り分けまで、は恒久対策まで一気通貫が目安です。

恒久対策としては、子テーマ運用・ステージング・Git管理・レビュー体制の4点を整えると再発率が下がります。迷ったら早めに相談することをおすすめします。

この記事を書いた人
著者アイコン

桐山智行(株式会社H.T.P. 代表)

2007年よりWeb制作に従事し、現在は企業サイトやWordPressの保守・改善支援も行っています。これまで100社以上・500サイトを超える案件を担当し、トラブル対応から集客サポートまで幅広く経験しています。

その他のWordPress関連記事はこちら

  • Lv1 初心者 初心者 … ログインなど基本も不安
  • Lv2 基本操作 基本操作 … 投稿OK/更新は不安
  • Lv3 投稿メイン 投稿メイン … 記事更新・差替えはできる
  • Lv4 更新ユーザー 更新ユーザー … テーマ/プラグイン更新経験あり
  • Lv5 データ操作 データ操作 … DBやバックアップを理解
  • Lv6 カスタマイザー カスタマイザー … 子テーマ・CSS修正が可能
  • Lv7 マスター マスター … コード/サーバーまで自走可能