web-dev-qa-db-ja.com

Wordpressでのデバッグ

Visual Studioでは、デバッグモードを実行してアプリケーションにブレークポイントを設定することで、アプリケーションを簡単にデバッグできます。

Wordpressでは、どのようにして同じことを達成できますか?

私は自分のウェブサイトに問題があり、エラーや警告はスローされません。私は幸運にもこれを理解するために設定を微調整するのに十分な時間を費やしました。私が見つけた唯一の解決策は、ブレークポイントを設定し、.NETのようにアプリケーションをデバッグすることです。

Wordpressでデバッグモードを有効にすると、サイトの上部に巨大なデバッグ出力が表示されることを知っています - これは問題ありませんが、それだけでは効率的にデバッグできません。

Visual StudioでWPサイトをデバッグするためのより良いアプローチがあるかどうか教えてください。

6
Jason

Wordpressでのデバッグは最初の作業では少々難しいかもしれませんが、Visual Studioが提供するようなブレークポイントは使用しませんが、phpを一般的にデバッグする方法やwordpressからのデバッグ出力をオンにする方法についてアドバイスできます。

まずwp-config.phpを開いて次の行を見つけます。

define('WP_DEBUG', false);

デフォルトではfalseに設定されています。2番目のパラメータをtrueに切り替えます。これにより、phpの通知、警告、エラーのメッセージがブラウザに表示されます。

Wordpress Codex のクイックビューは、データベース関連のエラーメッセージを簡単に有効にできることを示しています。

<?php $wpdb->show_errors(); ?> 
<?php $wpdb->print_error(); ?> 

これを実行すると、最後に送信されたSQLクエリ、およびMySqlから発生した可能性のあるエラーを表示できます。

それから一般的に変数やデータ構造について何がおかしいのかを見つけようとするとき、私はこれが常に役に立つと思います:

<pre>
 <?php print_r($arrayOrObject);
</pre>

Preタグを使用すると、htmlのプリフォーマットが行われることなく生の出力が吐出され、連想配列とオブジェクトのビューが消去されます。 var_dump()関数もこのように役立ちます。

ポストバック、ajaxリクエストのようなものをデバッグしようとしていて、その中間に入りたいのであれば、デバッグしようとしている変数を単にエコーアウトしてすぐにdie()コマンドを発行します。

echo '<pre>';
echo var_dump($arrayOrObject);
echo '</pre>';
die();

開発環境のために私はWAMPスタックのラインに沿って何かを使うことを好む(私の頭の上にあるMac OS X用のMAMP)。

必要に応じて上記のテクニックを試すことができるように、あなた自身のマシン上であなたのwordpressインスタンスのローカルコピーを実行することは間違いなく便利です。上記のトラブルシューティングのヒントは、過去5年間のphpプログラミングとwordpressプログラミングを通して私を導いてくれました。あなたがこれが役に立つことを願っています!

7
Ryan Fletcher

WordPressには、定数を使用した独自のデバッグシステムが付属しているため、環境を切り替えるときに簡単にオン/オフを切り替えることができます。すべての定数はwp-config.phpファイルで定義されています。

define( 'WP_DEBUG', true )

WP_DEBUG をtrueに設定すると、すべてのPHPエラー、警告、および通知が画面に表示されます。また、廃止予定の関数や引数に関する通知もスローされます。

define( 'WP_DEBUG_LOG', true )

WP_DEBUG_LOG を有効にすると、すべてのエラーがファイルに保存されます(/ wp-content /にあるdebug.log)。 AJAXイベントをデバッグするときに役立ちます。

define( 'WP_DEBUG_DISPLAY', true )

前の2つの定数に加えて、 WP_DEBUG_DISPLAY を使用して、エラーをページに印刷するかどうかを制御できます。

define( 'SAVEQUERIES', true )

_ savequeries _ がtrueと定義されていると、実行されたすべてのクエリが保存されます。また、クエリの実行に要した時間とそれを呼び出した関数に関する情報もあります。すべての情報は$wpdb->queriesに格納されています。

また、 SCRIPT_DEBUG constant define( 'SCRIPT_DEBUG', true)があり、WordPressは縮小版ではなく開発版のコアCSSおよびJSファイルを使用するように強制されます。


Visual Studio(PHP Toolsが必要です)/ PHPStorm/Eclipseを使用すると、Xdebugを使用してデバッグを行うことができます。 XAMPP/MAMPを使っているのであれば、すでにXdebugがインストールされているので、設定するだけです。

php.iniを見つけて、次の2行を追加します。

zend_extension="/absolute/path/to/xdebug.so"
xdebug.remote_enable = 1

xdebugドキュメンテーション でそれらについて読むことができるabdに設定できる他のオプションがあります。 php.iniファイルの編集が終わったら、Apacheサーバーを再起動してください。

次のステップは、エディタでPHP Debugger設定を設定することです。設定/設定ダイアログに進み、PHP設定を探します。それが終わったら、ブレークポイントの設定を始めることができます。

6
Boris Kuzmanov