デバッグ用の例 wp-config.php
以下のコードをあなたの wp-config.php ファイルに挿入すると、すべてのエラー、通知、および警告が debug.log
というファイルに wp-content
ディレクトリに記録されます。また、エラーを非表示にするため、ページ生成を中断しません。
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
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に設定されます。
// This enables debugging.
define( 'WP_DEBUG', true );
// This disables debugging.
define( 'WP_DEBUG', false );
注意: 例の true
と false
の値は、ブール値(true/false)であるため、アポストロフィ(‘)で囲まれていません。定数を 'false'
に設定すると、引用符が文字列として解釈されるため、trueとして解釈されます。
ライブサイトで WP_DEBUG
や他のデバッグツールを使用することは推奨されません。これらはローカルテストやステージングインストール用です。
PHPエラー、警告、および通知
WP_DEBUG
を有効にすると、すべてのPHPエラー、通知、および警告が表示されます。これは、PHPのデフォルトの動作を変更する可能性があり、デフォルトでは致命的なエラーのみを表示するか、エラーが発生したときに白い画面が表示されます。
すべてのPHP通知と警告を表示すると、壊れていないように見えるが、PHP内の適切なデータ検証規則に従っていないものに対してエラーメッセージが表示されることがよくあります。これらの警告は、関連するコードが特定されると簡単に修正でき、結果として得られるコードはほぼ常にバグに強く、メンテナンスが容易です。
カスタムPHPデバッグ
デバッグ目的でエラー以外の情報を記録する必要がある場合、PHPはこの目的のために error_log
関数を提供しています。ただし、この方法はデフォルトでは適切にフォーマットされた出力を提供しません。
これに対処するために、カスタムプラグイン を作成するか、いくつかの コードスニペット プラグインを使用して、フォーマットを処理する別の関数をサイトに追加できます。この関数は、error_log
のラッパーとして機能し、print_r
を使用して配列やオブジェクトを正しくフォーマットしてから記録します。
以下は、WP_DEBUG
を有効にする必要がある例の関数です。
function write_log( $data ) {
if ( true === WP_DEBUG ) {
if ( is_array( $data ) || is_object( $data ) ) {
error_log( print_r( $data, true ) );
} else {
error_log( $data );
}
}
}
使用例:
write_log( 'DEBUG TEXT' );
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
に保存されます。あるいは、有効なファイルパスに設定して、ファイルを他の場所に保存することもできます。
define( 'WP_DEBUG_LOG', true );
または
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
と一緒に使用するべきです。
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
です。
define( 'SCRIPT_DEBUG', true );
SAVEQUERIES
SAVEQUERIES
定義は、データベースクエリを配列に保存し、その配列を表示してクエリを分析するのに役立ちます。trueとして定義された定数は、各クエリが保存され、そのクエリの実行にかかった時間、およびそれを呼び出した関数を記録します。
define( 'SAVEQUERIES', true );
配列はグローバル $wpdb->queries
に保存されます。
注意: これはサイトのパフォーマンスに影響を与えるため、デバッグしていないときはオフにしてください。
デバッグプラグイン
WordPressには、特定のコンポーネントまたは一般的な内部情報を表示する多くの デバッグプラグイン があります。
例えば、Debug Bar は、クエリ、キャッシュ、およびその他の役立つデバッグ情報を表示するデバッグメニューを管理バーに追加します。WP_DEBUGが有効になっていると、PHPの警告や通知も追跡され、見つけやすくなります。
変更履歴
- 2023-02-01: 元のコンテンツを更新しました。
- 2022-09-11: WordPressのデバッグ からの元のコンテンツ; Github からのチケット。