WordPressでエラーログを非表示にする方法
目次
WordPressを運用していると、以下のような警告メッセージが表示されることがあります。
Warning: Undefined array key "stampName" in /home/bluebear-ltd/subestamp.com/public_html/wp-content/plugins/wp-customer-reviews/wp-customer-reviews-3.php on line 672
これは、配列のキーが定義されていない場合に発生するPHPのWarning
メッセージです。開発環境では有益な情報ですが、本番環境では表示させたくないですよね。
そこで今回は、WordPressでこのようなエラーメッセージを非表示にする方法を紹介します。
方法1:wp-config.phpの設定を変更する(おすすめ)
WordPressの設定ファイル wp-config.php
に以下のコードを追加または変更することで、エラーメッセージを非表示にできます。
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
解説
WP_DEBUG
をfalse
にすることで、WordPressのデバッグモードをオフにする。WP_DEBUG_DISPLAY
をfalse
にすることで、画面にエラーメッセージを表示しない。@ini_set('display_errors', 0);
でPHPのエラーメッセージを非表示にする。
この方法は WordPress全体に適用 されるため、サイト運営においてもっとも安全な設定です。
方法2:functions.phpでエラーレポートを調整する
テーマの functions.php
に以下のコードを追加すると、特定のエラーレベル(Warning
や Notice
)を非表示にできます。
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
@ini_set('display_errors', 'Off');
解説
E_ALL & ~E_NOTICE & ~E_WARNING
で「Notice(通知)」と「Warning(警告)」を除外。@ini_set('display_errors', 'Off');
で画面にエラーメッセージを出力しない。
この方法は テーマごとに適用 されるので、テーマが変わると再設定が必要になります。
方法3:プラグインのコードを修正する(非推奨)
警告が発生している wp-customer-reviews-3.php
の line 672
を修正することで、エラーを回避できます。
修正前
$stampName = $array['stampName'];
修正後
$stampName = isset($array['stampName']) ? $array['stampName'] : '';
または @
を使ってエラーを無視する(非推奨):
$stampName = @$array['stampName'];
注意点
- プラグインのアップデートで修正が上書きされるため、推奨されません。
- プラグイン開発者に報告し、公式の修正を待つ方がベターです。
方法4:.htaccessでエラーメッセージを非表示にする
.htaccess
に以下のコードを追加すると、PHPのエラーメッセージを非表示にできます。
php_flag display_errors Off
php_value error_reporting 0
注意点
.htaccess
の変更は、サーバー全体に影響を与える 可能性があります。- レンタルサーバーによっては、この設定が無効な場合があります。
どの方法を選ぶべきか?
方法 | 適用範囲 | おすすめ度 |
---|---|---|
wp-config.php の設定変更 | WordPress全体 | ⭐⭐⭐⭐⭐ |
functions.php に追加 | テーマ単位 | ⭐⭐⭐ |
プラグインのコードを修正 | 一部プラグインのみ | ⭐ |
.htaccess の変更 | サーバー全体 | ⭐⭐ |
一番安全で簡単な方法は wp-config.php
の変更 です。
まとめ
本番環境では不要なエラーメッセージを非表示にして、快適なサイト運営をしましょう!
✅ wp-config.php
で WP_DEBUG
を false
にするのがベスト
✅ テーマ単位で制御したいなら functions.php
を使う
✅ プラグインのコード修正は非推奨
✅ .htaccess
の変更はサーバーの設定に依存