WPML
ステータス
解決済み

問題の概要

一部のウェブサイトでは、翻訳管理ダッシュボードまたは翻訳管理の翻訳ジョブページで以下のJavaScriptコンソールエラーが発生する場合があります。

app.js?ver=5.0.4:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

このエラーにより、次のような一連のPHP警告も発生します。

PHP Warning: Cannot modify header information - headers already sent in /app/public/wp-includes/rest-api/class-wp-rest-server.php on line 1258

PHP Stack trace:

PHP 1. {main}() /app/public/index.php:0

PHP 2. require() /app/public/index.php:17

PHP 3. wp() /app/public/wp-blog-header.php:16

PHP 4. WP->main() /app/public/wp-includes/functions.php:1105

PHP 5. WP->parse_request() /app/public/wp-includes/class-wp.php:737

PHP 6. do_action_ref_array() /app/public/wp-includes/class-wp.php:387

PHP 7. WP_Hook->do_action() /app/public/wp-includes/plugin.php:531

PHP 8. WP_Hook->apply_filters() /app/public/wp-includes/class-wp-hook.php:310

PHP 9. call_user_func_array:{/app/public/wp-includes/class-wp-hook.php:286}() /app/public/wp-includes/class-wp-hook.php:286

PHP 10. rest_api_loaded() /app/public/wp-includes/class-wp-hook.php:286

PHP 11. WP_REST_Server->serve_request() /app/public/wp-includes/rest-api.php:309

PHP 12. WP_REST_Server->send_header() /app/public/wp-includes/rest-api/class-wp-rest-server.php:224

PHP 13. header() /app/public/wp-includes/rest-api/class-wp-rest-server.php:1258

このエラーはPHP 5.6を実行しているウェブサイトに特有のものであり、PHPのこの変更の作成者がここで説明しているように$HTTP_RAW_POST_DATAグローバル変数に値が設定された際に(使用されていない場合でも)PHPによってトリガーされる非推奨警告が原因です。

[…] 非推奨メッセージをトリガーする現在の方法は少し最適ではありません($HTTP_RAW_POST_DATA変数にアクセスしようとしたときではなく、$HTTP_RAW_POST_DATAに値が設定されたときにメッセージが表示されます)。

この警告には、非推奨通知を削除する方法が説明されています。

回避策

php.iniファイルの編集


  1. サーバーのphp.iniファイルを見つけて編集します。

  2. always_populate_raw_post_dataという文字列を含む行を探します。

  3. 行がセミコロン(;)で始まっている場合、それはコメントアウトされている(使用されていない)ことを意味します。この場合は、セミコロンを削除してください。

  4. 行全体がalways_populate_raw_post_data=-1であることを確認します(「=-1」で終わる必要があります)。

  5. サーバーを再起動します。

PHPのアップグレード


PHPをより新しいバージョン(7.1以降)にアップグレードすると、非推奨の警告が解消されます。

PHP 7.1はPHP 5.6よりもはるかに高速です。

PHP 5.6は2019年1月1日にサポート期間を終了しました。これは「サポートされなくなったリリース」であることを意味します。「このリリースのユーザーは、パッチが適用されないセキュリティの脆弱性にさらされる可能性があるため、できるだけ早くアップグレードする必要があります」(ソース:https://www.php.net/supported-versions.php)。

すべての既知の問題 →