幸せな日のシナリオ:JavaScriptクライアントにJSONを送信するWP REST APIを実装します。ユーザー。すべて良好。
実際に起こること、必然的に:WordPressのコードやプラグインがPHPの注意や警告を生成し、サーバーがこのゴミを発見するように設定されているJSONレスポンス(WP REST API はそれを避けようとします しかし、たとえばini_set()
がサーバーの設定によって許可されていない場合でも、発生する可能性があります。)
アプローチの1つの方法は単にユーザーにそれを責めることです - 彼らのサーバーがPHPの通知と警告を本番環境で送信するように設定されている場合、それは確かに悪いです。ただし、コアのRESTインフラストラクチャでも、サーバーの設定が不適切なユーザーをサポートしようとしているため、この場合も私の目標です。
これに対処するために確立されたテクニックはありますか?私は2つの方法を見ることができます:
123
の代わりに、それは{ "__VALID__": true, "data": 123 }
のようなオブジェクトにラップされ、JSコードはresponse.body.data
の代わりにresponse.body
を使用します。または他の方法はありますか?
クラスを作成している場合、構文の最初の部分はこれになります。または、できるだけ早く行動を起こすことができます。たぶんplugins_loaded。
/*
* If WP DEBUG is not on do NOT return any php warning, notices, and/or fatal errors.
* Well If it is a fatal error then this return is FUBAR anyway...
* We do this because some badly configured servers will return notices and warnings switch get prepended or appended to the rest response.
*/
if( defined('WP_DEBUG') ){
if( false === WP_DEBUG ){
error_reporting(0);
}
}
可能性が多すぎるので、ソフトウェアの他の部分によって引き起こされたあなた自身のプラグインの一般的な問題を解決することはできません。追加のプラグイン/テーマを使用できるようになると予想される場合は、サイトの所有者の責任でクリーン操作を実行してください。
あなたが持つことができる唯一の合理的なアプローチはブラウザコンソールにこの種の応答をログに記録することであるのでプラグインユーザーが文句を言ったときに物事がうまくいかない理由をあなたが追跡することはより簡単になるでしょう。