PR

WordPress デバッグ方法

WEB
3844328 / Pixabay
記事内に広告が含まれています。

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);

 

最後までお読み頂きありがとうございます!

コメント