自作テンプレ作成時のデバッグメモ

WordPressの自作テンプレ作成時に、デバッグ方法を調べるのに手間取ったので、方法をまとめます。

ページ上に直表示

一番手っ取り早い方法。最後の「;」を忘れてエラーになりがちなのと、タグ閉じ忘れなどhtml構文ミスって表示おかしくなりがちなので気を付ける。

※「’」と「”」の違いはほぼないと思っているけど、たまにエラーになるので、またきちんと調べたい。

参考:https://www.php.net/manual/ja/function.var-dump.php

echo '<div>ページ上に直接表示される</div>';

変数をタグで囲って出力したいときなどは、echoを行で分けるのもわかりづらいので「.」(ピリオド)で文字列を連結して表示すると短く済んでわかりやすい。

$data = '連結する変数';
echo '<div>' . $data . '</div>'
$data = ['配列とか','Datetime型とかも','詳しく表示'];
var_dump($data);

コンソールでの出力

javaScriptのconsole_log()を使う方法。直接ページのレイアウトに影響を受けたくない場合に便利。

参考:https://www.php.net/manual/ja/debugger.php

//////コンソール出力//////
$myvar = '出力内容';
console_log( $myvar ); 

function console_log( $data ){
  echo '<script>';
  echo 'console.log('. json_encode( $data ) .')';
  echo '</script>';
}

アラート表示

実行されたタイミングでモーダルが表示される。わかりやすいけど、ちょっと鬱陶しい。下のコードの例は、wp_head アクションが実行されるタイミングでアラートが表示される。

//////アラート表示//////
add_action( 'wp_head', 'hook_javascript' );

function hook_javascript() {
	$output = "<script> alert('Page is loading...'); </script>";
	echo $output;
}

ログファイルとして出力

ファイルにログとして出力内容を残す場合の例。アクセストークンを使ったjsonファイルの取得のデバッグで、処理履歴的に内容を残したくて作った。エラーがあった場合の出力もこんな感じでいけそう。ただし、ファイルの書き込み処理は動作負荷が少し増えるので注意。

putlog("出力されるログ内容" . "\n");

function putlog($logdata){// 実行時刻と引数のデータを指定ファイルに追記する
	$putfile = dirname(__FILE__). '/_log.txt';//実行しているphpファイルのディレクトリにファイル保存場所を指定
	$current_datetime = new DateTime();
	$puttext = "\n".'//log: '.$current_datetime->format('Y-m-d H:i:s') .'//'."\n".$logdata;

	file_put_contents( $putfile, $puttext, FILE_APPEND);//内容を追記する(ファイルがなければ作成される)
}