• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「WordPressでのデバッグ」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(最新英語版を反映 en:Debugging in WordPress 00:53, 25 December 2015‎ Atachibana版)
(和訳完了 en:Debugging in WordPress 00:53, 25 December 2015‎ Atachibana版)
 
1行目: 1行目:
{{NeedTrans}}
+
どのプロジェクトでもPHP コードのデバッグは共通ですが、WordPress にはプロセスの簡素化目的にデザインされた専用のデバッグシステムと、コアやプラグイン、テーマに共通の標準化されたコードが備わっています。このページでは WordPress のさまざまなデバッグツールと、コードの生産性を向上し、同時に全体の品質を改善して相互運用を加速する方法について説明します。
  
Debugging PHP code is part of any project, but WordPress comes with specific debug systems designed to simplify the process as well as standardize code across the core, plugins and themes. This page describes the various debugging tools in WordPress and how to be more productive in your coding as well as increasing the overall quality and interoperativity of your code.  
+
<p class="important">'''注意:''' 一般のアカウントではプラグインやテーマの <tt>WP_DEBUG</tt> は必須ではありませんが、プラグインやテーマを公開する開発者はコードの作業中に <tt>WP_DEBUG</tt> モードを使用することを'''強く推奨'''します。互換性のないプラグインやテーマはエラーや通知、警告を出力します。 <tt>WP_DEBUG</tt> を有効にして作業する他の開発者はこのような行儀の悪いプラグインやテーマを使いません。またエラーを含むテーマは公式 [[Theme_Review#PHP.2C_JS.2C_CSS.2C_HTML|WordPress]] ツールを介した登録の対象になりません。</p>
  
'''Note:''' While it is not mandatory to account for <tt>WP_DEBUG</tt> in plugins and themes it is '''highly recommended''' that plugin and theme developers use <tt>WP_DEBUG</tt> mode while working on code they plan to release publicly. If your plugin or theme is not compatible then the errors, notices and warnings it throws will make it impossible for other developers to use your plugin/theme while they have <tt>WP_DEBUG</tt> enabled and your theme will not be eligible for promotion via the official [[Theme_Review#PHP.2C_JS.2C_CSS.2C_HTML|WordPress]] tools.
 
  
 
== WP_DEBUG ==
 
== WP_DEBUG ==
[[WP_DEBUG]] /[[:en:WP_DEBUG /en]] はWordPressを通じて、「デバッグ」モードを開始するため用いることができるPHPの定数(永続的なグローバル変数)です。
+
<tt>[[WP_DEBUG]] /[[:en:WP_DEBUG|en]]</tt> は WordPress を「デバッグ」モードに切り替える際に使用する PHP の定数 ( 永続的なグローバル変数 )です。デフォルトは false で、通常は WordPress の開発環境の [[Editing_wp-config.php|wp-config.php]] ファイル内で true に設定します。
これは、デフォルトではfalseであるとみなされ、通常はWordPressの開発コピーでの [[Editing_wp-config.php|wp-config.php]]ファイルにて、trueに設定されています。
+
  
 
  define( 'WP_DEBUG', true );
 
  define( 'WP_DEBUG', true );
 
  define( 'WP_DEBUG', false );
 
  define( 'WP_DEBUG', false );
  
注: The <tt>true</tt> and <tt>false</tt> values in the example are not surrounded by apostrophes (') because they are boolean (true/false) values. If you set constants to <tt>'false'</tt>, they will be interpreted as true because the quotes make it a string rather than a boolean.
+
注: 上の例の値「<tt>true</tt>」や「<tt>false</tt>」はブール値 (true または false) のため、引用符 (') で囲みません。定数 <tt>'false'</tt> を指定すると true として解釈されるため注意してください。引用符は値をブーリアン型でなく文字列型にします。
  
これはWP_DEBUGまたは本番サイト上の他のデバッグツールを使用することは推奨されません。それらはローカルテストおよびステージングインストールのためのものです。
+
<tt>WP_DEBUG</tt> や他のデバッグツールを本番環境で使用することは推奨されません。これらはローカルのテスト環境やステージング環境での使用を想定しています。
  
===PHP Errors、Warnings、Notices===
 
<tt>WP_DEBUG</tt>を有効にすると、すべてのPHPエラー、通知や警告が表示されます。This is likely to modify the default behavior of PHP which only displays fatal errors and/or shows a white screen of death when errors are reached.
 
  
Showing all PHP notices and warnings often results in error messages for things that don't seem broken, but do not follow proper data validation conventions inside PHP.
+
===PHP のエラー、警告、通知<span id="PHP_Errors,_Warnings,_and_Notices"></span>===
これらの警告は、関連するコードが発見されたら修正することが容易であり、 and the resulting code is almost always more bug-resistant and easier to maintain.
+
<tt>WP_DEBUG</tt>を有効にすると、すべての PHP エラー、警告、通知が表示されます。通常の PHP の動きであれば、重要なエラーのみが表示され、エラーに達すると恐怖の「真っ白」画面が表示されます。
 +
 
 +
PHP の通知や警告は、コードは壊れてはいないものの PHP 内部の適切なデータ検証ルールに準拠しない場合に表示されるエラーメッセージです。これらの警告は、関連するコードが発見されれば修正は容易であり、また修正されたコードはほとんど常にバグに強く、保守しやすくなります。
 +
 
  
 
===非推奨の関数と引数===
 
===非推奨の関数と引数===
Enabling <tt>WP_DEBUG</tt> will also cause notices about deprecated functions and arguments within WordPress that are being used on your site. These are functions or function arguments that have not been removed from the core code yet but are slated for deletion in the near future. Deprecation notices often indicate the new function that should be used instead.
+
<tt>WP_DEBUG</tt> を有効にすると、サイトで使用されている非推奨の WordPress 関数および引数についての通知が表示されます。非推奨の関数や引数はまだコアのコードで提供されていますが、近い将来には削除される予定です。一般に非推奨の通知は、代替として利用可能な新しい関数についても示します。
 +
 
  
 
== WP_DEBUG_LOG==
 
== WP_DEBUG_LOG==
  
<tt>WP_DEBUG_LOG</tt> is a companion to <tt>WP_DEBUG</tt> that causes all errors to also be saved to a <tt>debug.log</tt> log file inside the <tt>/wp-content/</tt> directory. This is useful if you want to review all notices later or need to view notices generated off-screen (e.g. during an [[AJAX_in_Plugins|AJAX]] request or [[関数リファレンス/wp_schedule_event|wp-cron]] run).
+
<tt>WP_DEBUG_LOG</tt> <tt>WP_DEBUG</tt> と一緒に使用して、すべてのエラーをディレクトリ <tt>wp-content</tt> 下のログファイル <tt>debug.log</tt> に保存します。これはあとですべての通知を確認したり、画面の外で生成される通知を確認する場合に便利です(たとえば [[プラグインで AJAX を使う|AJAX]] リクエスト中や [[関数リファレンス/wp_schedule_event|wp-cron]] 実行中など)
  
Note that this allows you to write to <tt>/wp-content/debug.log</tt> using PHP's built in <tt>error_log()</tt> function, which can be useful for instance when debugging AJAX events.
+
注意: この状態で PHP のビルトイン関数 <tt>error_log()</tt> を使用すると <tt>wp-content/debug.log</tt> に出力できます。これはたとえば AJAX のイベントをデバッグする際に便利です。
  
 
  define( 'WP_DEBUG_LOG', true );
 
  define( 'WP_DEBUG_LOG', true );
  
注:WP_DEBUG_LOGが何かをするのに、WP_DEBUGは有効(true)にする必要があります。単独でWP_DEBUG_DISPLAYをオフにすることができるので覚えておきましょう。
+
注:<tt>WP_DEBUG_LOG</tt> が動作するには <tt>WP_DEBUG</tt> に true を設定して有効化する必要があります。<tt>WP_DEBUG_DISPLAY</tt> は独立して無効化できます。
 +
 
  
 
==WP_DEBUG_DISPLAY==
 
==WP_DEBUG_DISPLAY==
  
<tt>WP_DEBUG_DISPLAY</tt> is another companion to WP_DEBUG that controls whether debug messages are shown inside the HTML of pages or not. The default is 'true' which shows errors and warnings as they are generated. Setting this to false will hide all errors. This should be used in conjunction with <tt>WP_DEBUG_LOG</tt> so that errors can be reviewed later.
+
<tt>WP_DEBUG_DISPLAY</tt> も <tt>WP_DEBUG</tt> と一緒に使用してデバッグメッセージを HTML ページ内部に出力するかどうかを制御します。デフォルトは「<tt>true</tt>」で、生成されたエラーや警告をページに表示します。「<tt>false</tt>」を設定するとすべてのエラーは表示されません。この設定は <tt>WP_DEBUG_LOG</tt> と組み合わせて使用し、あとでログファイルでエラーを確認してください。
  
 
  define( 'WP_DEBUG_DISPLAY', false );
 
  define( 'WP_DEBUG_DISPLAY', false );
  
Note: for WP_DEBUG_DISPLAY to do anything, WP_DEBUG must be enabled (true).  Remember you can control WP_DEBUG_LOG independently.
+
注:<tt>WP_DEBUG_DISPLAY</tt> が動作するには <tt>WP_DEBUG</tt> に true を設定して有効化する必要があります。なお <tt>WP_DEBUG_LOG</tt> は独立して制御できます。
 +
 
  
 
== SCRIPT_DEBUG==
 
== SCRIPT_DEBUG==
  
<tt>SCRIPT_DEBUG</tt> is a related constant that will force WordPress to use the "dev" versions of core CSS and Javascript files rather than the minified versions that are normally loaded. This is useful when you are testing modifications to any built-in .js or .css files. Default is false.
+
<tt>SCRIPT_DEBUG</tt> はデバッグに関連する定数で、通常 WordPress にロードされる「縮小版」コアCSS や JavaScript ファイルの代わりに「開発版」を使用します。組み込みの .js ファイルや .css ファイルを変更してテストする場合に便利です。デフォルトは「<tt>false</tt>」です。
  
 
  define( 'SCRIPT_DEBUG', true );
 
  define( 'SCRIPT_DEBUG', true );
 +
  
 
== SAVEQUERIES==
 
== SAVEQUERIES==
  
The <tt>SAVEQUERIES</tt> definition saves the database queries to an array and that array can be displayed to help analyze those queries. The constant defined as true causes each query to be saved, how long that query took to execute, and what function called it.
+
<tt>SAVEQUERIES</tt> 定義はデータベースクエリを配列に保存して表示し、クエリの解析を支援します。「<tt>true</tt>」を設定して有効化すると、各クエリが実行時間、呼び出し元の関数と共に保存されます。
  
 
  define( 'SAVEQUERIES', true );
 
  define( 'SAVEQUERIES', true );
  
The array is stored in the global <tt>$wpdb->queries</tt>.
+
配列はグローバル <tt>$wpdb->queries</tt> 内に保存されます。
  
NOTE: This will have a performance impact on your site, so make sure to turn this off when you aren't debugging.
+
注意: この設定はサイトのパフォーマンスに影響を与えます。デバッグ時以外は無効化してください。
  
== デバッグのための wp-config.php 例 ==
 
The following code, inserted in your [[Editing_wp-config.php|wp-config.php]] file, will log all errors, notices, and warnings to a file called debug.log in the wp-content directory. It will also hide the errors so they do not interrupt page generation.
 
  
  <nowiki> // Enable WP_DEBUG mode
+
== デバッグのための wp-config.php 例 <span id="Example_wp-config.php_for_Debugging"></span>==
 +
次のコードをファイル <tt>[[Editing_wp-config.php|wp-config.php]]</tt> に挿入するとすべてのエラー、通知、警告が <tt>wp-content</tt> ディレクトリ下のファイル <tt>debug.log</tt> に出力されます。画面へのエラー表示は抑止されるため、生成されたページはデバッグメッセージで邪魔されません。
 +
 
 +
  <nowiki> // WP_DEBUG モードを有効化
 
define( 'WP_DEBUG', true );
 
define( 'WP_DEBUG', true );
  
// Enable Debug logging to the /wp-content/debug.log file
+
// /wp-content/debug.log ファイルへのデバッグログの出力を有効化
 
define( 'WP_DEBUG_LOG', true );
 
define( 'WP_DEBUG_LOG', true );
  
// Disable display of errors and warnings
+
// エラーと警告の画面への表示を無効化
 
define( 'WP_DEBUG_DISPLAY', false );
 
define( 'WP_DEBUG_DISPLAY', false );
 
@ini_set( 'display_errors', 0 );
 
@ini_set( 'display_errors', 0 );
  
// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
+
// 「開発版」のコア JavaScript と CSS ファイルを使用 (これらのコアファイルを変更する場合のみ必要)
 
define( 'SCRIPT_DEBUG', true );</nowiki>
 
define( 'SCRIPT_DEBUG', true );</nowiki>
  
NOTE: You must insert this '''BEFORE''' <tt>/* That's all, stop editing! Happy blogging. */</tt> in the [[Editing_wp-config.php|wp-config.php]] file
+
注意: このコードはファイル <tt>[[Editing_wp-config.php|wp-config.php]]</tt> 内の <tt>/* That's all, stop editing! Happy blogging. */</tt> より '''前''' に挿入してください。
 +
 
  
 
== デバッグプラグイン ==
 
== デバッグプラグイン ==
  
There are many [http://wordpress.org/extend/plugins/search.php?q=debug&sort= well-written plugins] that handle debugging in WordPress and show more information about the internals, either for a specific component or in general. Some examples of such plugins are [http://wordpress.org/extend/plugins/debug-bar/ Debug Bar][http://wordpress.org/extend/plugins/log-deprecated-notices/ Log Deprecated Notices] and [http://wordpress.org/plugins/total-security/ Total Security].
+
WordPress のデバッグを助ける多くの[https://ja.wordpress.org/plugins/search.php?q=debug&sort= 素晴らしいプラグイン]があります。これらは特定のコンポーネント、または全体に関してより多くの内部情報を出力します。いくつか例を挙げます。 [https://wordpress.org/plugins/debug-bar/ Debug Bar][https://wordpress.org/plugins/log-deprecated-notices/ Log Deprecated Notices][https://wordpress.org/plugins/total-security/ Total Security]  
  
==History==
 
  
Before WordPress 3.1, the <tt>STYLE_DEBUG</tt> constant behaved similarly to <tt>SCRIPT_DEBUG</tt> but affected CSS files rather than JavaScript. In 3.1 the two constants were merged into <tt>SCRIPT_DEBUG</tt>, which now affects both types of minified file.
+
==履歴<span id="History"></span>==
  
== 外部リソース ==
+
WordPress 3.1 以前には <tt>STYLE_DEBUG</tt> 定数が JavaScript を除く CSS ファイルに対象を限定して <tt>SCRIPT_DEBUG</tt> と同じ働きをしていました。WordPress 3.1 で2つの定数は <tt>SCRIPT_DEBUG</tt> に統合され、両方の縮小版ファイルに働くようになりました。
* [http://generatewp.com/wp-config/ WordPress 'wp-config.php' ファイルジェネレーター]
+
 
 +
== 外部リソース <span id="External_Resources"></span>==
 +
* [http://generatewp.com/wp-config/ WordPress 'wp-config.php' file Generator]
 
* [https://github.com/stracker-phil/wp-no-white-screen/ 'No White Screen' plugin: Display the error instead of a white screen]
 
* [https://github.com/stracker-phil/wp-no-white-screen/ 'No White Screen' plugin: Display the error instead of a white screen]
 +
  
 
{{原文|Debugging in WordPress|155110}}<!--  00:53, 25 December 2015‎ Atachibana版 -->
 
{{原文|Debugging in WordPress|155110}}<!--  00:53, 25 December 2015‎ Atachibana版 -->

2015年12月25日 (金) 01:20時点における最新版

どのプロジェクトでもPHP コードのデバッグは共通ですが、WordPress にはプロセスの簡素化目的にデザインされた専用のデバッグシステムと、コアやプラグイン、テーマに共通の標準化されたコードが備わっています。このページでは WordPress のさまざまなデバッグツールと、コードの生産性を向上し、同時に全体の品質を改善して相互運用を加速する方法について説明します。

注意: 一般のアカウントではプラグインやテーマの WP_DEBUG は必須ではありませんが、プラグインやテーマを公開する開発者はコードの作業中に WP_DEBUG モードを使用することを強く推奨します。互換性のないプラグインやテーマはエラーや通知、警告を出力します。 WP_DEBUG を有効にして作業する他の開発者はこのような行儀の悪いプラグインやテーマを使いません。またエラーを含むテーマは公式 WordPress ツールを介した登録の対象になりません。


WP_DEBUG

WP_DEBUG /en は WordPress を「デバッグ」モードに切り替える際に使用する PHP の定数 ( 永続的なグローバル変数 )です。デフォルトは false で、通常は WordPress の開発環境の wp-config.php ファイル内で true に設定します。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );

注: 上の例の値「true」や「false」はブール値 (true または false) のため、引用符 (') で囲みません。定数 'false' を指定すると true として解釈されるため注意してください。引用符は値をブーリアン型でなく文字列型にします。

WP_DEBUG や他のデバッグツールを本番環境で使用することは推奨されません。これらはローカルのテスト環境やステージング環境での使用を想定しています。


PHP のエラー、警告、通知

WP_DEBUGを有効にすると、すべての PHP エラー、警告、通知が表示されます。通常の PHP の動きであれば、重要なエラーのみが表示され、エラーに達すると恐怖の「真っ白」画面が表示されます。

PHP の通知や警告は、コードは壊れてはいないものの PHP 内部の適切なデータ検証ルールに準拠しない場合に表示されるエラーメッセージです。これらの警告は、関連するコードが発見されれば修正は容易であり、また修正されたコードはほとんど常にバグに強く、保守しやすくなります。


非推奨の関数と引数

WP_DEBUG を有効にすると、サイトで使用されている非推奨の WordPress 関数および引数についての通知が表示されます。非推奨の関数や引数はまだコアのコードで提供されていますが、近い将来には削除される予定です。一般に非推奨の通知は、代替として利用可能な新しい関数についても示します。


WP_DEBUG_LOG

WP_DEBUG_LOGWP_DEBUG と一緒に使用して、すべてのエラーをディレクトリ wp-content 下のログファイル debug.log に保存します。これはあとですべての通知を確認したり、画面の外で生成される通知を確認する場合に便利です(たとえば AJAX リクエスト中や wp-cron 実行中など)。

注意: この状態で PHP のビルトイン関数 error_log() を使用すると wp-content/debug.log に出力できます。これはたとえば AJAX のイベントをデバッグする際に便利です。

define( 'WP_DEBUG_LOG', true );

注:WP_DEBUG_LOG が動作するには WP_DEBUG に true を設定して有効化する必要があります。WP_DEBUG_DISPLAY は独立して無効化できます。


WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAYWP_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 ファイルの代わりに「開発版」を使用します。組み込みの .js ファイルや .css ファイルを変更してテストする場合に便利です。デフォルトは「false」です。

define( 'SCRIPT_DEBUG', true );


SAVEQUERIES

SAVEQUERIES 定義はデータベースクエリを配列に保存して表示し、クエリの解析を支援します。「true」を設定して有効化すると、各クエリが実行時間、呼び出し元の関数と共に保存されます。

define( 'SAVEQUERIES', true );

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

注意: この設定はサイトのパフォーマンスに影響を与えます。デバッグ時以外は無効化してください。


デバッグのための wp-config.php 例

次のコードをファイル wp-config.php に挿入するとすべてのエラー、通知、警告が wp-content ディレクトリ下のファイル debug.log に出力されます。画面へのエラー表示は抑止されるため、生成されたページはデバッグメッセージで邪魔されません。

 // WP_DEBUG モードを有効化
define( 'WP_DEBUG', true );

// /wp-content/debug.log ファイルへのデバッグログの出力を有効化
define( 'WP_DEBUG_LOG', true );

// エラーと警告の画面への表示を無効化
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// 「開発版」のコア JavaScript と CSS ファイルを使用 (これらのコアファイルを変更する場合のみ必要)
define( 'SCRIPT_DEBUG', true );

注意: このコードはファイル wp-config.php 内の /* That's all, stop editing! Happy blogging. */ より に挿入してください。


デバッグプラグイン

WordPress のデバッグを助ける多くの素晴らしいプラグインがあります。これらは特定のコンポーネント、または全体に関してより多くの内部情報を出力します。いくつか例を挙げます。 Debug BarLog Deprecated NoticesTotal Security


履歴

WordPress 3.1 以前には STYLE_DEBUG 定数が JavaScript を除く CSS ファイルに対象を限定して SCRIPT_DEBUG と同じ働きをしていました。WordPress 3.1 で2つの定数は SCRIPT_DEBUG に統合され、両方の縮小版ファイルに働くようになりました。

外部リソース


最新英語版: WordPress Codex » Debugging in WordPress最新版との差分