WordPressのWP_Queryでクエリ(SQL)を確認する方法
公開日:
最終更新日:
WordPressの記事情報はデータベースに登録されています。
そして、記事情報をPHPで取得するにはWP_Queryなどを使用します。
この時、欲しい記事が適切に取得できず、取得件数が0件になってしまうことがあるんですね。
特に、tax_queryやmeta_queryを使用するクエリでは条件が複雑になり、取得したい記事が取れないことがあります。
こういう時に「実行されたクエリを直接確認できたらデバッグが捗るのに・・・」と思うのですが、実はWP_Queryのクエリを確認する方法があります。
WP_Queryのクエリ(SQL)の中身を確認する方法
WP_Queryは取得した記事一覧の情報を変数に代入して使用しますが、この変数を使用してクエリを表示することが出来ます。
<?php
// 実行したクエリ(SQL)を表示
echo $query->request;
?>
変数に代入されたクラスのメンバ変数っていうことになるのかな。
メンバのrequestを表示することで、クエリの中身を確認することが可能です。
具体的には、以下のように使います。
<?php
// WP_Queryを使って記事を取得する
$query = new WP_Query(array(
'post_type' => 'post',
'meta_query' => array(
array( // カスタムフィールド『area』に『tokyo』が含まれる場合
'key' => 'area',
'value' => 'tokyo',
'compare' => 'LIKE',
),
),
'orderby' => 'date',
'order' => 'DESC'
));
// 取得した記事数を表示
echo "<p>取得した記事数:{$query->post_count}</p>";
// 実行したクエリ(SQL)を表示
echo "<p>実行したクエリ:{$query->request}</p>";
?>
表示されたクエリの中で条件に合わない物があれば、その条件を変更したり削除することで、狙った記事を取得することができますよ。
宣伝
WordPressサイトのテンプレート編集やトラブル対応、バグ修正、簡単なJavascriptの作成(カルーセルやバリデーション等)など、小規模なスポット対応を受け付けております。
もしお困りごとがありましたら、お問い合わせフォームよりご相談ください。
もしお困りごとがありましたら、お問い合わせフォームよりご相談ください。