检测 WordPress REST API 响应?

joe*_*ler 1 wordpress wordpress-rest-api

检测 WordPress 响应是否由 REST API 生成的最佳方法是什么?似乎还没有任何条件标签,如is_feed()is_page()?

WordPress 生命周期后期的一些钩子可能会改变输出,例如天真地附加 html 标签或调试内容。问题是,如果响应是来自 REST API 的 JSON blob,附加内容将使 JSON 响应无效。

is_feed有条件的标签不承认饲料和回报REST API的响应false

joe*_*ler 5

rest_api_loaded在方法WP-包括/休息-api.php限定REST_REQUEST恒定,这是有益地标记为“不管这是一个REST请求”。然后在class-wp-query.php 中检查该常量。这是一个is_rest基于该检查的简单小条件函数:

function is_rest() {
    return ( defined( 'REST_REQUEST' ) && REST_REQUEST );
}
Run Code Online (Sandbox Code Playgroud)

  • 作为旁注,如果在“parse_request”操作之前调用,则始终返回 false (2认同)