WordPressでWarningを非表示にする方法
WordPressをPHP 7にバージョンアップしたときなどに「Warning」や「Notice」というメッセージが表示されることがあります。これらは画面が真っ白(HTTP 500 エラー)になるほど重大なエラーではありません。あくまで警告や注意のレベルなので動作に問題ありませんが、できれば非表示にしたいですよね。
![プラグインが原因のWarningが表示される](http://www.nishi2002.com/wp-content/uploads/2018/08/2018-07-25-16-45-05.jpg)
エラーメッセージはこんな感じです。これを見ると原因のプラグインやテーマがわかります。この例ではwordpress ping optimizerプラグインの問題のようです。
Warning: count(): Parameter must be an array or an object that implements Countable in /home/…略…/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533
wp-config.phpでWarningを非表示に
よくある原因として、テストのためエラーメッセージを表示する設定(デバッグモード)にしたのを元に戻し忘れてそのまま放置していることがあります。
その場合、wp-config.phpのWP_DEBUGの部分がtrueになっているはずなので、ここをfalseに設定すれば大丈夫です。具体的には次のようになります。
define('WP_DEBUG', false);
すでにこの状態なのに「Warning」や「Notice」が表示される場合、他の方法が必要です。問題のあるプラグイン本体を修正したくなるかもしれませんが、あまりおすすめできません。アップデートしたら元に戻ってしまうので。
WordPressプラグインでWarningを非表示に
そんなときはFree Customizeプラグインのように、アップデートしなくて済むカスタマイズ用のプラグインを使って、「Warning」や「Notice」などのエラーメッセージを非表示にする方法があります。
具体的には上記のプラグインをインストールして、PHPファイル(free-customize.php)に次のようなコードを入力します。
error_reporting(0);
入力したイメージは次のようになります。
![コードの入力イメージ](http://www.nishi2002.com/wp-content/uploads/2018/08/2018-07-25-16-49-16.jpg)
これにより、「Warning」や「Notice」を含めてすべてのエラーメッセージが消えます。
![エラーメッセージが消える](http://www.nishi2002.com/wp-content/uploads/2018/08/2018-07-25-16-50-51.jpg)
error_reportingは画面に表示するエラーメッセージのレベルを設定するPHPの関数です。「error_reporting(0);」はエラーメッセージを一切表示しない設定です。