web-dev-qa-db-ja.com

クエリで実行されたSQLクエリを表示する方法

私はそれが使用された正確なSQLコードを表示する前に関数に出くわした。例えばループの中では、覚​​えていません。

その機能を誰かに教えてもらえますか?

101
Keith Donegan

こんにちは @Keith Donegan:

私があなたの質問を正しく理解したならば、私はこれがあなたが探しているものであると思いますか?

<?php echo $GLOBALS['wp_query']->request; ?>

$wp_queryは、ループによって実行される現在のクエリを含むグローバル変数です。ループがまだアクティブである間、またはループの直後でさえも上記のコードを実行すると、ループからSQLが返されます。 query_posts()を再び使用する何か他のものを実行させる前に、必ずそれを調べてください。

132
MikeSchinkel

WP_Queryに基づいてクエリを実行した場合、それはこれです:

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
58
Till

あなたがループだけに興味があるなら、これは私が通常使うものです:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
21
Rarst

この回答を参照してください。 あなたのfunctions.phpファイルに最適なコード集

次に、任意のWP URLに?debug = sqlを追加すると、実行されたクエリの全リストが出力されます。 (そして、はい、それは怖いです...)

20