Warning: Undefined array key “file” in /public_html/wp-includes/media.php on line 1768

このエラーは、WordPressでSVGファイルを処理する際によく発生する問題です。状況を整理して説明しますね。

エラーの原因

Warning: Undefined array key “file” in /public_html/wp-includes/media.php on line 1768

このエラーは、WordPressのwp-includes/media.phpファイルの1768行目で、$_FILES['file']配列のキーにアクセスしようとしたときに、そのキーが存在しないために発生しています。

対策

エラー表示されているページ内で、SVG画像を使っていると思います、それをやめます。
それをPNGやJPGに代替えします。

なぜSVGファイルで発生するのか

  1. WordPressのSVG処理の制限
    • WordPressはデフォルトでSVGファイルのアップロードを許可していません
    • セキュリティ上の理由で、SVGファイルは特別な処理が必要とされています
  2. Elementorでの処理
    • ElementorでSVGファイルを使用する際、WordPressのメディア処理機能が呼び出されます
    • この時、通常の画像ファイルとは異なる処理パスを通るため、期待されるファイル情報が不完全になることがあります
  3. 配列キーの不整合
    • media.phpの該当箇所では、アップロードされたファイルの情報を$_FILES配列から取得しようとします
    • SVGファイルの場合、この配列の構造が期待される形式と異なることがあり、”file”キーが存在しない状態になります

あなたの対処法が有効だった理由

SVGファイルを読み込まないようにしたら正常化したのは、以下の理由からです:

  • 問題の根本回避: SVGファイル処理自体を避けることで、エラーの原因となるコードパスを通らなくなった
  • 代替手段: 他の画像形式(PNG、JPG等)を使用することで、WordPressの標準的なメディア処理機能が正常に動作した

より根本的な解決策

もしSVGファイルを使い続けたい場合は:

  1. SVG対応プラグインの使用
    • 「Safe SVG」などのプラグインを使用してSVGファイルを安全に処理する
  2. functions.phpでのSVG許可設定
    • 適切なセキュリティ対策を含めてSVGアップロードを許可する

このエラーは、WordPressのファイル処理システムとSVGファイルの特性による互換性の問題が原因と考えられます。

ご相談・お問合せ

お気軽にどうぞ。