WordPressで投稿を取得する際、query_postsに条件を指定することはよくあると思います。
複雑な条件を指定する場合だと、SQL文を直接カスタマイズしたほうが早いときもあります。
ただ、実行するとうまく投稿を取得できない。。。
そもそもこれって、正しいSQL文になってるの!?
そういう場合に、実行されてるSQL文を確認できるコードです。
WordPressで実行中のSQLを確認する方法
結論としては、以下の1文を書いてやれば、実行中のSQL文を表示することができます。
print_r($GLOBALS['wp_query']->request);
SQL確認コードの説明
ページを表示する際に処理されるデータは、処理タイミングでグローバル変数wp_queryに保存されていきます。
実行されるSQL文に関しては、グローバル変数wp_queryのrequestプロパティに保存されますので、先ほどのコードで表示することができます。
また、コードの記載場所は、query_postsで条件を指定した場合は、query_postsを実行した後に記載しましょう。
コードの記述場所例
<php query_posts('posts_per_page=-1'); print_r($GLOBALS['wp_query']->request); //query_postsを指定した後に記述する if ( have_posts() ) while ( have_posts() ) : the_post(); ・ ・ ・
query_postsを記述しない場合は、特に記載場所を意識しなくても大丈夫です。
以上、Wordpressで実行中のSQLを確認する方法でした。