I am starting a bit with the REST API. If I am not completly mislead, the init
action hook is also executed when its a REST API request. Now, I want to execute some code only, when it is not a REST API request.
So I was looking for a command like is_rest()
in order to do something like
<?php
if( ! is_rest() ) echo 'no-rest-request';
?>
But I couldn’t find something like this. Is there a is_rest()
out there?
It’s a good point by @Milo, the REST_REQUEST
constant is defined as true
, within rest_api_loaded()
if $GLOBALS['wp']->query_vars['rest_route']
is non-empty.
It’s hooked into parse_request
via:
add_action( 'parse_request', 'rest_api_loaded' );
but parse_request
fires later than init
– See for example the Codex here.
There was a suggestion (by Daniel Bachhuber) in ticket #34373 regarding WP_Query::is_rest()
, but it was postponed/cancelled.