WordPressでWarningを非表示にする方法
WordPressをPHP 7にバージョンアップしたときなどに「Warning」や「Notice」というメッセージが表示されることがあります。これらは画面が真っ白(HTTP 500 エラー)になるほど重大なエラーではありません。あくまで警告や注意のレベルなので動作に問題ありませんが、できれば非表示にしたいですよね。
エラーメッセージはこんな感じです。これを見ると原因のプラグインやテーマがわかります。この例では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);
入力したイメージは次のようになります。
これにより、「Warning」や「Notice」を含めてすべてのエラーメッセージが消えます。
error_reportingは画面に表示するエラーメッセージのレベルを設定するPHPの関数です。「error_reporting(0);」はエラーメッセージを一切表示しない設定です。