WordPress初心者におすすめ!デバッグモードの使い方

WordPressを使っていたら、突然画面が真っ白に!って経験ありませんか?
そんなときにおすすめなのがWordPressの「デバッグモード」です。
WordPressの画面が真っ白になる原因としては、プラグインとの相性が良くなかったり、PHPの記述ミスなどがありますが、そんなエラーの内容を表示してくれます。
2014/09/09 「5. 非圧縮ファイルの読みこみ」を追加しました。
デバッグモードの使い方
wp-config.phpに書かれている
/** * 開発者へ: WordPress デバッグモード * * この値を true にすると、開発中に注意 (notice) を表示します。 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。 */ define('WP_DEBUG', false);
の false を true に変更すると、エラーがブラウザに表示されます。
define('WP_DEBUG', true);
エラーが解決したら false に戻して、デバッグモードを無効にして下さい。
define('WP_DEBUG', false);
エラーをログファイルに書き出す方法
エラーをブラウザに表示させずに、ログファイルに書き出すことも出来ます。
wp-config.php
define('WP_DEBUG', true); //デバッグモードを有効にする if (WP_DEBUG) { //デバッグモードの場合 define('WP_DEBUG_LOG', true); //エラーをdebug.logファイルに書き出す define('WP_DEBUG_DISPLAY', false); //エラーをブラウザに表示しない @ini_set('display_errors', 0); //エラーをブラウザに表示しない }
WP_DEBUG_LOGを true にすると、wp-contentフォルダ内のdebug.logファイルにエラーの内容が書き込まれます。
debug.logファイルは自動的に作成されますが、作成されないときは空のdebug.logファイルを作成して、wp-contentフォルダ内にアップします。
エラーが書き込まれないときは、debug.logファイルのパーミッションを606など書き込み可能な設定にします。(レンタルサーバーを使用している場合は、サーバーのパーミッション設定を確認して下さい。)
エラーをログファイルに書き出すと、エラーの内容がどんどんたまっていくので、こまめに削除して下さい。
致命的なエラーだけ書き出す方法
WP_DEBUGを true にすると非推奨のタグに対してもエラーが表示されてしまうので、致命的なエラーだけをログファイルに書き出すことも出来ます。
wp-config.php
define('WP_DEBUG', false); //デバッグモードを無効にする @ini_set('log_errors','On'); //エラーメッセージをログファイルに書き出す @ini_set('display_errors','Off'); //エラーをブラウザに表示しない @ini_set('error_log','/logs/php_error.log'); //ログファイルのパスを指定する
error_log で設定しているルートパスは、環境によって変更して下さい。
WordPressのWP_DEBUGによるPHPのエラーをファイルに出力する方法 | kwLog
よくあるエラーメッセージ
Notice: "○○○"は非推奨です。代わりに "×××" をお使いください。
- WordPressの非推奨のタグを使っているときに発生するエラー。
将来的に使えなくなるタグなので、WordPress Codex 日本語版などで確認して、修正したほうが良いようです。 - Notice: Undefined variable: (変数名) …
- 定義していない変数を使おうとしたときに発生するエラー。
- Parse error: syntax error, unexpected …
- 構文エラー。タグの書き間違いや
" "
やif文、foreach文などの閉じ忘れ、行末の;(セミコロン)の書き忘れなどのときに発生するエラー。 - Fatal error: Call to undefined function (関数名) …
- 定義していない関数を呼びだそうとしたときに発生するエラー。
- Fatal error: Cannot redeclare (関数名) …
- 同じ名前の関数が複数存在する場合に発生するエラー。プラグイン同士が同じ関数名を利用しようとした場合などに発生します。
- include (ファイル名) : failed to open stream: No such file or directory …
- 読み込むファイルやディレクトリが存在しない場合に発生するエラー。
- Warning: Cannot modify header information …
header("Location:~");
の前に何か出力してしまったときに発生するエラー。
スクリプトに余分な空白文字がある場合や、header("Location:~");
の前にechoを使っている場合など。
PHP.iniの設定の問題の場合もあるようです。Warning: Cannot modify header information…のエラーを解決してみた。 | nekonomemo.net
エラーメッセージの最後に行番号が表示されますが、必ずしもその行に原因があるとは限らないので、その行に問題なければその前の行をチェックします。
(" "
やif文、foreach文などの閉じ忘れの場合はかなり前のほうに原因があったりします。)
非圧縮ファイルの読みこみ
WordPressの非圧縮のCSSやスクリプトを読み込む。
wp-config.php
define('SCRIPT_DEBUG', true); //非圧縮のCSSやjsファイルを読み込む
WordPressは通常、デフォルトで入っているCSSやスクリプトを読み込むときに、圧縮されたCSSやスクリプトを読み込みます。
SCRIPT_DEBUGをtrueにすると、開発用の非圧縮のCSSやスクリプトを、スクリプトを連結させずに個別に読み込むようになります。
テーマを作成するときに、デフォルトのスクリプトを確認しやすくなります。
最後に
WordPressのテーマやプラグインの開発(編集)をするときには、デバッグモードを有効にするよう推奨されているんですけど、初心者向けの本やブログだと、デバッグモードのことはあまり書かれてないようです。
とても便利なので、テーマやプラグインの開発(編集)をするときはデバッグモードをぜひ使ってみて下さい!
3件のトラックバック
WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style | W-bookmark
[…] WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style […]
2013/10/01
はてなブックマーク – WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style | BBソーシャルニュース
[…] て経験ありませんか?そんなときにおすすめなのがWordPressの「デバッグモード」です。WordPressの画面が真っ白になる原因としては、プラグインとの相性が良くなかっ…[続きを読む] […]
2013/10/08
AmazonJSで”ネットワークエラー: name lookup timed out”と表示されたときの対処法について
[…] WordPress初心者におすすめ!デバッグモードの使い方 […]
2014/03/29