wp_is_rest_endpoint()
云策文档标注
概述
wp_is_rest_endpoint() 函数用于检查当前是否正在处理 REST API 端点请求,包括独立请求或常规页面加载中的内部请求。
关键要点
- 返回布尔值:true 表示正在处理 REST 端点请求,false 表示否。
- 支持过滤器 wp_is_rest_endpoint,允许开发者自定义判断逻辑。
- 内部通过 wp_is_serving_rest_request() 和 WP_REST_Server::is_dispatching() 实现检查。
代码示例
function wp_is_rest_endpoint() {
/* @var WP_REST_Server $wp_rest_server */
global $wp_rest_server;
// Check whether this is a standalone REST request.
$is_rest_endpoint = wp_is_serving_rest_request();
if ( ! $is_rest_endpoint ) {
// Otherwise, check whether an internal REST request is currently being handled.
$is_rest_endpoint = isset( $wp_rest_server )
&& $wp_rest_server->is_dispatching();
}
/**
* Filters whether a REST endpoint request is currently being handled.
*
* This may be a standalone REST API request, or an internal request dispatched from within a regular page load.
*
* @since 6.5.0
*
* @param bool $is_request_endpoint Whether a REST endpoint request is currently being handled.
*/
return (bool) apply_filters( 'wp_is_rest_endpoint', $is_rest_endpoint );
}注意事项
- 该函数在 WordPress 6.5.0 版本中引入。
- 相关函数包括 wp_is_serving_rest_request() 和 WP_REST_Server::is_dispatching()。
- 常用于条件加载资源,如块样式或字体处理。
原文内容
Checks whether a REST API endpoint request is currently being handled.
Description
This may be a standalone REST API request, or an internal request dispatched from within a regular page load.
Source
function wp_is_rest_endpoint() {
/* @var WP_REST_Server $wp_rest_server */
global $wp_rest_server;
// Check whether this is a standalone REST request.
$is_rest_endpoint = wp_is_serving_rest_request();
if ( ! $is_rest_endpoint ) {
// Otherwise, check whether an internal REST request is currently being handled.
$is_rest_endpoint = isset( $wp_rest_server )
&& $wp_rest_server->is_dispatching();
}
/**
* Filters whether a REST endpoint request is currently being handled.
*
* This may be a standalone REST API request, or an internal request dispatched from within a regular page load.
*
* @since 6.5.0
*
* @param bool $is_request_endpoint Whether a REST endpoint request is currently being handled.
*/
return (bool) apply_filters( 'wp_is_rest_endpoint', $is_rest_endpoint );
}
Hooks
- apply_filters( ‘wp_is_rest_endpoint’, bool $is_request_endpoint )
-
Filters whether a REST endpoint request is currently being handled.
Changelog
| Version | Description |
|---|---|
| 6.5.0 | Introduced. |