আমি এখানে যা এলাম তা এখানে:
/**
* Determines if the current request we are handling is a REST Request.
* This function can be called even on mu-plugins.
*
* You might want to prefix this function name with
* something more unique to your project.
*
* @return bool
*/
function is_rest(): bool {
$is_cli = php_sapi_name() === 'cli';
$permalink_structure = get_option( 'permalink_structure' );
$rest_prefix = rest_get_url_prefix();
if ( ! empty( $permalink_structure ) && ! $is_cli ) {
/*
* HTTP request with Pretty Permalinks.
*/
if ( substr( $_SERVER['REQUEST_URI'], 0, strlen( $rest_prefix ) ) === $rest_prefix ) {
return true;
}
} elseif ( empty( $permalink_structure ) && ! $is_cli ) {
/*
* HTTP Requests with Plain Permalinks
*
* We can rely on "?rest_route" for plain permalinks, this value don't change:
* wp/wp-includes/rest-api.php:145
*
* All ?rest_route must start with "/":
* wp/wp-includes/rest-api.php:159
*/
if ( isset( $_GET['rest_route'] ) && substr( $_GET['rest_route'], 0, 1 ) === '/' ) {
return true;
}
} elseif ( $is_cli ) {
/*
* CLI request
*/
if ( did_action( 'parse_request' ) ) {
return defined( 'REST_REQUEST' ) && REST_REQUEST;
} else {
throw new RuntimeException( "Maybe someone at StackOverflow can help fill this gap of identifying REST requests on CLI before the parse_request action has fired and the REST_REQUEST constant is available?" );
}
}
return false;
}
parse_request
যদিও ক্রিয়াকলাপ চালানোর আগে সিএলআই থেকে আরআরইএসটি অনুরোধগুলি সনাক্ত করার জন্য আমার খুব বেশি সময় লাগেনি । আমি পরামর্শ খোলা!
আমি এখনও এই বৈশিষ্ট্যটির চারপাশে কিছু পরীক্ষা লিখতে চাই না, আমি একবার এই উত্তরটি আপডেট করব।
- সম্পাদনা করুন
সবেমাত্র WooCommerce এটি পরিচালনা করে। WooCommerce সরল permalink জন্য অ্যাকাউন্ট হিসাবে মনে হয় না:
public function is_rest_api_request() {
if ( empty( $_SERVER['REQUEST_URI'] ) ) {
return false;
}
$rest_prefix = trailingslashit( rest_get_url_prefix() );
$is_rest_api_request = ( false !== strpos( $_SERVER['REQUEST_URI'], $rest_prefix ) );
return apply_filters( 'woocommerce_is_rest_api_request', $is_rest_api_request );
}
init
। এছাড়াও নোট করুন যে API এর অংশগুলি অনুরোধগুলিতে অভ্যন্তরীণভাবে ব্যবহার করা যেতে পারে যা REST অনুরোধগুলি নয়, তাই আপনি যদি সেই সনাক্তকরণের উপর নির্ভর করে থাকেন তবে আপনার কিছু ভাঙার ঝুঁকি রয়েছে।