デバッグ用の例 wp-config.php

以下のコードをあなたの wp-config.php ファイルに挿入すると、すべてのエラー、通知、および警告が debug.log というファイルに wp-content ディレクトリに記録されます。また、エラーを非表示にするため、ページ生成を中断しません。

  1. // Enable WP_DEBUG mode
  2. define( 'WP_DEBUG', true );
  1. // Enable Debug logging to the /wp-content/debug.log file
  2. define( 'WP_DEBUG_LOG', true );
  1. // Disable display of errors and warnings
  2. define( 'WP_DEBUG_DISPLAY', false );
  3. @ini_set( 'display_errors', 0 );
  1. // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
  2. define( 'SCRIPT_DEBUG', true );

注意: このコードは wp-config.php ファイルの /* That's all, stop editing! Happy blogging. */前に 挿入する必要があります。

WP_DEBUG

WP_DEBUG は、WordPress全体で「デバッグ」モードをトリガーするために使用できるPHP定数(永続的なグローバル変数)です。デフォルトではfalseと見なされ、通常はWordPressの開発コピーの wp-config.php ファイルでtrueに設定されます。

  1. // This enables debugging.
  2. define( 'WP_DEBUG', true );
  1. // This disables debugging.
  2. define( 'WP_DEBUG', false );

注意: 例の truefalse の値は、ブール値(true/false)であるため、アポストロフィ(‘)で囲まれていません。定数を 'false' に設定すると、引用符が文字列として解釈されるため、trueとして解釈されます。

ライブサイトで WP_DEBUG や他のデバッグツールを使用することは推奨されません。これらはローカルテストやステージングインストール用です。

PHPエラー、警告、および通知

WP_DEBUG を有効にすると、すべてのPHPエラー、通知、および警告が表示されます。これは、PHPのデフォルトの動作を変更する可能性があり、デフォルトでは致命的なエラーのみを表示するか、エラーが発生したときに白い画面が表示されます。

すべてのPHP通知と警告を表示すると、壊れていないように見えるが、PHP内の適切なデータ検証規則に従っていないものに対してエラーメッセージが表示されることがよくあります。これらの警告は、関連するコードが特定されると簡単に修正でき、結果として得られるコードはほぼ常にバグに強く、メンテナンスが容易です。

カスタムPHPデバッグ

デバッグ目的でエラー以外の情報を記録する必要がある場合、PHPはこの目的のために error_log 関数を提供しています。ただし、この方法はデフォルトでは適切にフォーマットされた出力を提供しません。

これに対処するために、カスタムプラグイン を作成するか、いくつかの コードスニペット プラグインを使用して、フォーマットを処理する別の関数をサイトに追加できます。この関数は、error_log のラッパーとして機能し、print_r を使用して配列やオブジェクトを正しくフォーマットしてから記録します。

以下は、WP_DEBUG を有効にする必要がある例の関数です。

  1. function write_log( $data ) {
  2. if ( true === WP_DEBUG ) {
  3. if ( is_array( $data ) || is_object( $data ) ) {
  4. error_log( print_r( $data, true ) );
  5. } else {
  6. error_log( $data );
  7. }
  8. }
  9. }

使用例:

  1. write_log( 'DEBUG TEXT' );
  2. write_log( $variable );

注意: 上記の例のようなカスタムコードを functions.php に追加することは、メンテナンス、セキュリティ、パフォーマンス、互換性、およびコードの整理の問題を避けるために推奨されません。

非推奨の関数と引数

WP_DEBUG を有効にすると、あなたのサイトで使用されているWordPress内の非推奨の関数や引数に関する通知も表示されます。これらは、まだコアコードから削除されていない関数や関数引数ですが、近い将来に削除される予定です。非推奨の通知は、代わりに使用すべき新しい関数を示すことがよくあります。

WP_DEBUG_LOG

WP_DEBUG_LOG は、すべてのエラーも debug.log ログファイルに保存されるようにするWP_DEBUGの補助機能です。これは、後ですべての通知を確認したり、画面外で生成された通知(例: AJAXリクエスト中や wp-cron 実行中)を表示する必要がある場合に便利です。

この機能により、PHPの組み込み error_log() 関数を使用してログファイルに書き込むことができ、Ajaxイベントのデバッグ時に便利です。

true に設定すると、ログはサイトのファイルシステム内のコンテンツディレクトリ(通常は wp-content/debug.log)の debug.log に保存されます。あるいは、有効なファイルパスに設定して、ファイルを他の場所に保存することもできます。

  1. define( 'WP_DEBUG_LOG', true );

または

  1. define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );

注意: WP_DEBUG_LOG が機能するためには、WP_DEBUG を有効にする必要があります(true)。WP_DEBUG_DISPLAY を独立してオフにすることもできます。

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY は、WP_DEBUG の別の補助機能で、デバッグメッセージがページのHTML内に表示されるかどうかを制御します。デフォルトは「true」で、生成されたエラーや警告が表示されます。これをfalseに設定すると、すべてのエラーが非表示になります。これは、後でエラーを確認できるように WP_DEBUG_LOG と一緒に使用するべきです。

  1. define( 'WP_DEBUG_DISPLAY', false );

注意: WP_DEBUG_DISPLAY が機能するためには、WP_DEBUG を有効にする必要があります(true)。WP_DEBUG_LOG を独立して制御することもできます。

SCRIPT_DEBUG

SCRIPT_DEBUG は、WordPressが通常読み込む圧縮版ではなく、コアCSSおよびJavaScriptファイルの「dev」バージョンを使用するように強制する関連定数です。これは、組み込みの .js または .css ファイルに対する変更をテストする際に便利です。デフォルトは false です。

  1. define( 'SCRIPT_DEBUG', true );

SAVEQUERIES

SAVEQUERIES 定義は、データベースクエリを配列に保存し、その配列を表示してクエリを分析するのに役立ちます。trueとして定義された定数は、各クエリが保存され、そのクエリの実行にかかった時間、およびそれを呼び出した関数を記録します。

  1. define( 'SAVEQUERIES', true );

配列はグローバル $wpdb->queries に保存されます。

注意: これはサイトのパフォーマンスに影響を与えるため、デバッグしていないときはオフにしてください。

デバッグプラグイン

WordPressには、特定のコンポーネントまたは一般的な内部情報を表示する多くの デバッグプラグイン があります。

例えば、Debug Bar は、クエリ、キャッシュ、およびその他の役立つデバッグ情報を表示するデバッグメニューを管理バーに追加します。WP_DEBUGが有効になっていると、PHPの警告や通知も追跡され、見つけやすくなります。

変更履歴

  • 2023-02-01: 元のコンテンツを更新しました。
  • 2022-09-11: WordPressのデバッグ からの元のコンテンツ; Github からのチケット。