WordPress解体新書

第2回WordPressの基本的な5つのルールその2:デバッグモード)

「WordPressを構築し、一通りのページチェックも終わり後は検収を控えるのみ⁠⁠。ちょっと待ってください。デバッグモードがオフになっていませんか? WordPressには運用モードとデバッグモードがあり、通常は運用モードで動いています。運用モードにあるWordPressはエラー表示を控え、テスト時には知っていなければならない警告なども出力されません。

日々の運用時でも「いきなり画面が真っ白になって何も表示されなくなった」といった経験はありませんか? これも運用モードにある WordPress がエラーを表示しないためです。

今回は制作と運用両方で最も重要なデバッグモードについてお話しします。

運用モードとデバッグモード

前述の通り、WordPressには運用モードとデバッグモードがあります。これら2つのモードを切り替えるオプションを「WP_DEBUG」オプションと言います。このWP_DEBUGオプションがオンになっていない状態が通常の運用モードであり、この状態にあるWordPressは、WordPressのシステムに関わるメッセージを一切表示しません。もちろん警告も表示しないので、自作テーマで使っているテンプレートタグが非推奨であるかどうかもわかりません。

WordPressを構築した際には、最低でも一度WP_DEBUGオプションをオンにしてどのような警告文が表示されるか確認してみてください。ほとんどのケースで何らかしらのメッセージが表示されますので、メッセージが出力されたからと言って慌てる必要はありません。

メッセージは平易な英文で表現されていますのでよく読んで理解し、どのような問題、または問題に発展する可能性のあるメッセージなのかを調べてみてください。多くの場合は表示されているメッセージを検索すればユースケースが見つかります。

このように豊富なユースケースがあるのもWordPressの魅力の1つですが、見つからない場合もあります。

そのような際には有効化しているプラグインをすべて無効にして再度確認し、それでもメッセージが消えない場合はテーマをデフォルトのものに変更しましょう。テーマやプラグインを1つずつ有効化していき再度メッセージが表示されたら、メッセージの原因は有効化したプラグインかテーマにあります。

テスト環境はデバッグモードで

新たなプラグインを導入する際には、どのような問題が発生するのか予測がつきません。少なくともテスト環境で一度試してみた後に本番環境に導入すべきですが、テスト環境だからと言って気を緩めてはいけません。新たなプラグインを導入する際にもデバッグモードに切り替え、問題なく導入できるプラグインであることを確認しておきましょう。

また、独自にテーマやプラグインを開発する際にもデバッグモードに切り替えて開発するようにしましょう。運用モードで開発したテーマやプラグインがエラーを表示しないのは問題がないことを保証するものではありません。

モードを切り替える

デバッグモードに切り替える方法は簡単です。wp-config.phpを開き、先頭に

<?php define('WP_DEBUG', true)?>

と入力し、保存します。これでWordPressはデバッグモードに切り替わります。運用モードに切り替えたい場合は先ほどの

<?php define('WP_DEBUG', true)?>

を削除して再度保存しましょう。

ビジネスユースでWordPressを構築したのであれば、デバッグモードで表示されるメッセージをまとめ、いずれのメッセージの原因がどのような影響を及ぼすかを把握しておくことが安定運用の一助になります。

メッセージの表示方法を変更する

3.0からデバッグモード時のメッセージ表示方法を選択できるようになりました。前述の方法ではメッセージを表示することを前提にしていますが、表示しないオプションもあります。

また、メッセージをログファイルに書き出すオプションもありますので、⁠メッセージは表示せずログファイルに書き出す⁠という方法が選択できます。テスト環境の視認性を考慮する際に有用なアプローチです。

クローズドなユーザテストなど、デバッグ情報を受け取りつつ画面にはそれを表示したくない場合などにも有用ですが、パフォーマンスが著しく低下しますのでパフォーマンステストとの併用は控えましょう。

デバッグモードでエラー表示させない場合は、wp-config.phpに

define('WP_DEBUG_DISPLAY', false);

と入力します。

エラーをログファイルに書き出す場合は、wp-config.phpに

define('WP_DEBUG_LOG', true);

と入力します。

どちらも入力後に保存することでオプションが有効になります。

WP_DEBUG_LOGオプションを有効するとメッセージはwp-content/debug.logに書き込まれますので、PHPの実行ユーザに書き込む権限を与えてください。不明な場合はパーミッションを 666 にして下さい。

デバッグモードを使いこなすことができれば、WordPress に起きている問題の原因をつかむことができるようになります。ユーザテストなどのテスト時にも有用な知識ですので、理解しておくと後々有利です。

次回は WordPress の拡張性の高さを支える⁠フックとフィルタ⁠についてお伝えします。

おすすめ記事

記事・ニュース一覧