WordPress JSON数据处理函数

张子凡 WordPress优化 2022-05-17 00:51:46 阅读(...) 评论(0)

在 WordPress 开发中难免遇到数据接口的对接和开发适配,而子凡作为 WordPress 的深度爱好者来说更是习惯使用 WordPress 系统封装的函数,所以但就 json 数据来说,WordPress 就定义了一堆的函数,由于最近在升级一些之前的 json 数据接口,所以顺便就来记录一下 WordPress json 数据处理函数及使用。

WordPress API

wp_json_encode

1
wp_json_encode( mixed $data, int $options, int $depth = 512 )

php json_encode 的升级版本,将变量编码为 JSON,并进行一些完整性检查。WordPress 5.3.0 不再处理对 PHP < 5.6 的支持。 wp_json_encode 函数默认也是通过 json_encode 编码,如果不成功则会使用 _wp_json_sanity_check 对数据做完整性处理,然后再用 json_encode 编码。所以使用 wp_json_encode 进行 json 数据编码可靠性更高。 如果想要提高中文的可读性,防止 json 编码把中文转换成 unicode,所以可以设置$options 参数为 JSON_UNESCAPED_UNICODE,这样中文就不会被转码,就能被直接识别。

wp_send_json

1
wp_send_json( mixed $response, int $status_code = null, int $options )

直接发送通过 wp_json_encode 编码的数据。使用 wp_send_json() 后不需要包含 wp_die() 或 exit(0),因为它会自动调用 wp_die()。

wp_send_json_success / wp_send_json_error

1
2
wp_send_json_success( mixed $data = null, int $status_code = null, int $options )
wp_send_json_error( mixed $data = null, int $status_code = null, int $options )

wp_send_json_success 响应对象将始终具有 success 值为 的键 true。如果有任何东西传递给函数,它将被编码为 data 键的值。

wp_send_json_error 响应对象将始终具有 success 值为 的键 false。如果在参数中将任何内容传递给函数$data,它将被编码为 data 键的值。wp_send_json_error 会判断 $data 数据是否为 WP_Error 实例,如果是则输出 code 和 message 的数组。

wp_is_json_request

检查当前请求是 JSON 请求,或者返回 JSON 结果,这个函数没有参数,直接使用:wp_is_json_request()。如果 Accepts 或 Content-Type 标头包含 application/json 则为真,否则为假。

wp_is_jsonp_request

检查当前请求是 JSONP 请求,或者返回 JSONP 结果,这个函数没有参数,直接使用:wp_is_jsonp_request()。它首先判断 $_GET[‘_jsonp’] ,是否存在,然后通过函数 wp_check_jsonp_callback 判断它的值是否合法。

wp_check_jsonp_callback

1
wp_check_jsonp_callback( string $callback )

检查 JSONP 回调是否是有效的 JavaScript 回调名称。回调函数名称中只允许字母数字字符和点字符。这有助于缓解直接输出用户输入引起的 XSS 攻击。

更多关于WordPress优化及疑问可以添加QQ群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-json.html

发表评论