へっぽこコーダーの備忘録

phpやらjavascriptやら、使った技術をすぐに忘れちゃうから、おぼえがき程度に書いていきまーす
2020.06.11

WordPressで実行中のSQLを確認する方法

WordPressで投稿を取得する際、query_postsに条件を指定することはよくあると思います。
複雑な条件を指定する場合だと、SQL文を直接カスタマイズしたほうが早いときもあります。

ただ、実行するとうまく投稿を取得できない。。。
そもそもこれって、正しいSQL文になってるの!?

そういう場合に、実行されてるSQL文を確認できるコードです。

WordPressで実行中のSQLを確認する方法

結論としては、以下の1文を書いてやれば、実行中のSQL文を表示することができます。

print_r($GLOBALS['wp_query']->request);

SQL確認コードの説明

ページを表示する際に処理されるデータは、処理タイミングでグローバル変数wp_queryに保存されていきます。

実行されるSQL文に関しては、グローバル変数wp_queryrequestプロパティに保存されますので、先ほどのコードで表示することができます。

また、コードの記載場所は、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を確認する方法でした。