WordPress用PHPデバッグツール「console_log」について
https://github.com/yuya-tajima/console_log
有志によって作られたこちらのプラグインですが、
まず導入編
一番手っ取り早い方法は、プラグインのディレクトリーに入って、そこでリポジトリをクローンするってやつ
[user@localhost plugins]$ cd /var/www/htdocs/wp-content/plugins
[user@localhost plugins]$ git clone https://github.com/yuya-tajima/console_log.git
[user@localhost plugins]$ wp plugin list | grep console_log
console_log inactive none 0.8.6
これでインストールは完了、次は、wp-config.phpのディレクトリに移動して、ファイルを編集し、次のように定義を追加する。
挿入位置こそ適当だが、覚えやすい為に今回はDEBUGオプションの下に追記
70 /**
71 * 開発者へ: WordPress デバッグモード
72 *
73 * この値を true にすると、開発中に注意 (notice) を表示します。
74 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
75 */
76 //define('WP_DEBUG', false);
77 //define('WP_DEBUG_DISPLAY', false);
78 //define('WP_DEBUG_LOG', true);
79 define('CONSOLE_LOG_FILE', '/var/log/console.log');//ログ
ログの場所に注意してほしいのは、ウェブサーバーに書き込みの手が届くところに置くこと、パーミッション設定はウェブサーバーユーザーに書き込みを付与すること。
用意が出来たら、プラグインを有効化する。wp cli導入済みの場合は
[user@localhost plugins]$ wp plugin activate console_log
これで初期設定、有効化は完了。
次は使ってみよう。
console_logは、PHPソースコードのDEBUGで大変役立つツールなので、使い方はvar_dumpに似ているが、var_dumpと違ってechoしなくとも戻り値が確認できるのはポイント。
例えば、ループ構造のif(have_posts())が何も起こらなかったけど戻り値は何だったかを知りたい時、処理がそこに辿り着く前に
<?php
console_log(have_posts());
if(have_posts()):the_post();
?>
で記述して、一回処理を走らせて、ログを確認すると、
[user@localhost plugins]$ tailf /var/log/console.log
...(前略)
file_name : /var/www/htdocs/wp-content/themes/my_theme/page.php
file_line : 7
func_name : console_log
func_args : (bool)true
bool(true)
*********************************************
なんと!型と戻り値までわかるなんて、バケモノか!?
というわけで、諸君の楽しいconsole_logライフを祈る!