Posted at

WordPress で is_rest()

WordPress には is_home() とか is_singular() とかリクエストされたページがなにかを判別する関数がいろいろありますが、それが REST API であるかどうかを判別するための関数がないので書いた。

/**

* Returns the true if the requested URL is REST API.
*
* @return bool
*/
function is_rest() {
return ( defined( 'REST_REQUEST' ) && REST_REQUEST );
}

ただし、これは parse_request というアクションフックが発火したあとじゃないと常に false を返すので以下のように使ってください。

add_action( 'parse_request', function() {

if ( ! is_rest() ) {
// do something.
}
}, 11 );