Fatal error: Uncaught Error: Call to undefined function …
PHP のアップグレード後に WordPress で「Call to undefined function」:原因と確認方法
# ログによく記録される内容
PHP Fatal error: Uncaught Error: Call to undefined function create_function() in …/wp-content/plugins/…
実行中の PHP バージョンや拡張モジュールに存在しない関数をコードが呼び出すと、PHP はこのエラーを出します。WordPress サイトでは、ホストがサイトを PHP 8 に移した後によく起きます。
どの状況に当てはまりますか?
PHP 8 で削除された create_function() や each() などの関数で、古いプラグインやテーマのコードが止まります。エラーには関数名とファイルが表示されます。
新しい PHP に、サイトが使う拡張モジュールが入っていません。ホストのコントロールパネルで、PHP のバージョンごとに有効な拡張モジュールを確認できます。
新しいバージョンのプラグインが、別のプラグインの関数や、サイトより新しい WordPress の関数を呼び出しています。
主な原因
参考資料
- PHP documentation: migrating from PHP 7.4 to PHP 8.0
- Debugging in WordPress (Advanced Administration Handbook)
システムの処理
白画面や致命的エラー(プラグインの競合、PHP バージョンの非互換)は自動処理の対象です。復旧ステーション上の複製でデバッグモードを有効にし、原因のプラグインまたはテーマを特定して無効化します(削除はしません)。無効化したプラグインは復旧レポートに記載します。再度有効化するかどうかはお客様がご判断ください。復旧は復旧ステーション上のサイトの複製で行い、再検証に合格してから書き戻します。サイトのデータベースのうち、保護対象テーブル(会員・コメント・注文・フォーム送信)は構造のみ取得します。SSH/FTP モードでは、書き戻しの前にお客様のホストに復旧前バックアップを作成し、書き戻し後の検証に合格しなかった場合はそのバックアップから復元します。復旧を完了できなかった場合、復旧料は全額返金します。
- 初期診断:サイトの URL を入力
- 復旧ステーションに複製:複製上で作業
- 原因の特定:項目ごとの確認
- 復旧と再検証:トップページと内部ページ
- 書き戻しまたは納品:再検証に合格した場合のみ
エラーがプラグインやテーマのファイルを示していて、管理画面が開かない場合は、WP119 にお任せいただけます。
サイトを初期診断する →