WordPressで使用しているプラグインの動作を検証・デバッグしたかったので、デバッグ方法を調べてみました。
WordPressでデバッグする方法としては、以下の2つがあるようです。
・デバッグ用のプラグインを入れる
・WordPressのデバッグ機能を使う
個人的にWordPressで使うプラグインは多くしたくないので、2つ目の「WordPressのデバッグ機能を使う」について記事にしたいと思います。
WordPressのデバッグ機能を使う
WordPressのデバッグ機能を使うには、「wp-config.php」ファイルを編集します。
該当のファイルはWordPressをインストールしたディレクトリの直下にあります。
「WP_DEBUG」でファイル内を検索すると出てきます。
デフォルトでは「false」になっているので、これを「true」に変更します。
この状態だとデバッグ情報は画面上に表示されます。
画面上の出力だと、画面をリロードしたらログは消えてしまいます。
デバッグ情報をログファイルに出力したい場合には、「wp-config.php」に以下を追記します。
define('WP_DEBUG_LOG', true);
ログファイルは「/wp-content/debug.log」に出力されます。
この状態だと画面上とログファイルの両方にデバッグ情報が出力されます。
画面上のデバッグ情報が不要な場合は、「wp-config.php」に以下を追記します。
define('WP_DEBUG_DISPLAY', false);
この状態だとデバッグ情報はファイルのみに出力されるようになります。
上記をまとめると以下のようになります。
・デバッグ情報を出力
・デバッグ情報をファイルに出力
・デバッグ情報を画面に表示しない
wp-config.php
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
任意にログを出力したい場合
ここまでの設定では、エラーやワーニングなどの情報に限られます。
プラグインの調査などで意図した動きになっているか調べる際は
デバッグ用の関数を自分で組み込む必要があります。
この処理は「functions.php」に組み込みます。
該当ファイルは「/wp-content/themes/twentyfifteen」にあります。
(使用しているテーマによりディレクトリは異なります。)
functions.php
if(!function_exists('_log')){ function _log($message) { if (WP_DEBUG === true) { if (is_array($message) || is_object($message)) { error_log(print_r($message, true)); } else { error_log($message); } } } }
参考にさせて頂きました。
https://qiita.com/shuhei/items/33a2c5aed10c951338cf
上記の関数追加後に、必要な箇所に以下を追記することで
ログファイルに出力されるようになります。
例)「Hello, World!」をログに出力する場合
_log("Hello, World!");
例)変数「hoge」の中身をログに出力する場合
_log($hoge);
最後までお読み頂きありがとうございます!
コメント