Detect if REST API is running

时间:2019-01-21 作者:Tom J Nowell

很多时候,我有代码,我想确保它只在rest api上下文中运行,或者永远不会在rest上下文中运行。

我知道有一些钩子,但是否有类似的函数wp_is_doing_cron?

2 个回复
最合适的回答,由SO网友:Pabamato 整理而成

我会使用:

if ( defined( \'REST_REQUEST\' ) && REST_REQUEST ) {...}
资料来源:https://github.com/WP-API/WP-API/issues/926#issuecomment-162920686

如果你看看this source code 在上,您会注意到常量是在处理任何内容之前定义的,我会检查它,而不是调用所提到的函数wp_is_json_request()

为什么
如果在执行检查时未设置标头,它将返回false,下面是一个GET请求报告的真实示例:https://github.com/WordPress/gutenberg/issues/11327

SO网友:Tom J Nowell

wp_is_json_request() 可用于确定当前请求是否为REST API请求

检查当前请求是否为JSON请求,或者是否需要JSON响应。

官方文件:https://developer.wordpress.org/reference/functions/wp_is_json_request/

相关推荐

安装和卸载WP-REST-API插件后API返回空白响应

WordPress/WooCommerce API在我的网站上被破坏:http://example.com/wp-json/wp/v2/posts 和http://example.com/wp-json/wc/v2/products 两者都返回空白响应。运行Python请求response = requests.get(\'http://<mysite>.com/wp-json/wp/v2/posts\', auth=HTTPBasicAuth(*auth)) 给出的响应(在调试器中