追記:2014/10/9
以下の処理をプラグイン化して公開しました。
ダッシュボード内プラグインの新規追加より「Show var_dump」と検索するか、Show var_dumpのページよりインストールできます。
変更点:
下記のスクリプトではログは毎回リセットされて保存されますが、追記するように変更しました。消したい場合はボタンをクリックして初期化できるようにしています。
詳しくはプラグイン公開作業で困ったことと合わせて、また近日中にまとめたいと思います。。。
—–
WordPressのフィルターフック・アクションフックを書いていて、var_dumpで変数の内容を確認したいときがあります。
しかしフィルターフック・アクションフックは何かを出力するわけではない処理も多くあり、var_dumpで配列の内容を確認しようとしても、結果を画面上に表示させることができないという場合がよくあります。
デバッグがやりづらいと思ったので、var_dumpの結果をページオプションに保存してダッシュボード上に表示する処理を書いてみました。
ADs
以下のスクリプトをfunctions.phpに記述します。
1.var_dumpの結果を変数に格納
2.1.の結果をページオプションに保存する
3.オプションをダッシュボード上に表示する
という流れの処理になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
//var_dumpを変数に //参考:var_dumpの出力を変数に渡す http://sakuragaoka.hatenadiary.jp/entry/20100401/p1 function vdump($obj){ ob_start(); var_dump($obj); $dump = ob_get_contents(); ob_end_clean(); //見出し代わりに日付・時間追加 return '----'.date(DATE_RFC2822)."-----------------\n".$dump; } //ページオプションに入れる function var_dump_ex($dump){ $key = 'var_dump'; //保存するオプション名 if(get_option('var_dump')){ update_option($key,vdump($dump)); } else { add_option($key,vdump($dump)); } } //ダッシュボードに表示 function show_dump(){ $dump = get_option('var_dump') ? get_option('var_dump') : '何もありません'; //出力されるHTML $dump_text = <<< EOF <div class="postbox"> <div class="inside"> <textarea style="width: 100%; height: 200px;" readonly>{$dump}</textarea> </div> </div> EOF; echo $dump_text; } //管理画面フッターの一番上に出す add_action('in_admin_footer','show_dump'); //フッタがコンテンツの上に被ってしまうのでCSSで調整 function show_dump_css(){ $css = <<< EOF <style type="text/css"> #wpbody-content { padding-bottom: 300px !important; /* ないとコンテンツの上にかぶってしまう… */ } </style> EOF; echo $css; } add_action('admin_head','show_dump_css'); |
確認したい変数をvar_dump_exという関数の引数に入れます。
var_dumpと使い方は同じです。
1 2 3 4 5 6 7 |
function hogehoge($a,$b){ //なんか処理を書く var_dump_ex($param); //続きの処理を書く } |
そうするとダッシュボード上の最下段に$paramの内容が表示されます。
デバッグについてはもうちょっといい方法ありそうな気がするので、もっとお手軽で分かりやすい方法があれば教えてください_(._.)_
ADs
コメントはまだありません。