SOFTELメモ

Softel Inc.

【WordPress】WordPressが実行しているSQLを見たい

問題

WordPressが実行しているSQLを見てみたい!

などで。

wordpress

答え

ほぼすべてのSQLが、queryというフィルターを通る。

なのでこんなことをすると全部var_dump()できる。

//functions.phpなどに
function sql_dump($query)
{
    var_dump($query);
    return $query;
}
add_filter('query', 'sql_dump');

上の例では、var_dump()して画面に出しているだけだが、ファイルやデータベースにログを残したり、SQLを改変したりができる。

function my_modify_query($query)
{
    if ('こんな条件にマッチしたら') {
        $query = str_replace('SQLの特定の部分を', '書き換えてしまおう!', $query);
    }
    return $query;
}
add_filter('query', 'my_modify_query');

普通は、posts_orderby、post_limits、posts_join、posts_where……などを使うところだけど、SQL全体をもらって、書き換えてしまった方が早い場合は、こういう手もありかもしれません。

関連するメモ

コメント