WordPressでWarningを非表示にする方法

WordPressをPHP 7にバージョンアップしたときなどに「Warning」や「Notice」というメッセージが表示されることがあります。これらは画面が真っ白(HTTP 500 エラー)になるほど重大なエラーではありません。あくまで警告や注意のレベルなので動作に問題ありませんが、できれば非表示にしたいですよね。

プラグインが原因のWarningが表示される
プラグインが原因のWarningが表示される

エラーメッセージはこんな感じです。これを見ると原因のプラグインやテーマがわかります。この例では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);」はエラーメッセージを一切表示しない設定です。

WordPressトラブル