检测 WordPress 响应是否由 REST API 生成的最佳方法是什么?似乎还没有任何条件标签,例如is_feed()
or is_page()
?
WordPress 生命周期后期的一些钩子可能会改变输出,例如天真地附加 html 标签或调试内容。问题是,如果响应是来自 REST API 的 JSON blob,则附加内容将使 JSON 响应无效。
is_feed
条件标签不会将 REST API 响应识别为 feed 和return false
。
检测 WordPress 响应是否由 REST API 生成的最佳方法是什么?似乎还没有任何条件标签,例如is_feed()
or is_page()
?
WordPress 生命周期后期的一些钩子可能会改变输出,例如天真地附加 html 标签或调试内容。问题是,如果响应是来自 REST API 的 JSON blob,则附加内容将使 JSON 响应无效。
is_feed
条件标签不会将 REST API 响应识别为 feed 和return false
。
wp-includes/rest-api.php中的rest_api_loaded
方法定义了一个常量,它被有用地标记为“这是否是一个 REST 请求”。然后在class-wp-query.php中检查该常量。这是一个基于该检查的简单小条件函数:REST_REQUEST
is_rest
function is_rest() {
return ( defined( 'REST_REQUEST' ) && REST_REQUEST );
}