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