您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
WordPress开发中JSON处理相关函数大全
邬肖任2023-07-18WordPress教程已有人查阅
导读JSON处理是WordPress开发中的经常需要处理的一项工作,为此WordPress 定义了一堆JSON处理的函数,下面由WordPress教程栏目给大家做一下统一的介绍。

JSON处理是WordPress开发中的经常需要处理的一项工作,为此WordPress 定义了一堆JSON处理的函数,下面由WordPress教程栏目给大家做一下统一的介绍。
wp_json_encode
编码成 JSON,并且进行一些完整性检查。
wp_json_encode( $data, $options = 0, $depth = 512 )
简单说下 WordPress 引进这个函数的原因:
首先不同 PHP 版本 json_encode 函数支持不同的参数。PHP 5.3 之前只支持 一个参数 $data,PHP 5.3 引进了 $options 参数,PHP 5.5 又引进了 $depth 参数。所以 WordPress 适配不同版本的 PHP,wp_json_encode 都支持三个参数,兼容不同版本的 PHP。
在 json_encode 之前,wp_json_encode 使用函数 _wp_json_prepare_data 对数据进行清理,如果 boolean,integer,double,string,NULL 这些类型,直接返回,如果数组,继续使用 _wp_json_prepare_data 函数对数组中的每个元素进行清理,如果是对象,如果该对象的 class 实现了 JsonSerializable 接口,则返回 $data = $data->jsonSerialize(),否则,继续使用 _wp_json_prepare_data 对对象中的每个属性进行清理。
然后使用 json_encode 进行编码,如果不成功,则使用 _wp_json_sanity_check 对数据进行完整性处理,最后再使用 json_encode 进行编码。_wp_json_sanity_check 主要使用函数 _wp_json_convert_string 对数据进行深度 UTF-8 检测和转换。
所以建议使用 wp_json_encode 对变量进行 JSON 编码,它的可靠性更高。
wpjam_json_encode
wp_json_encode( $data, $options = JSON_UNESCAPED_UNICODE, $depth = 512 )
PHP5.4 JSON 新增了一个选项:JSON_UNESCAPED_UNICODE,故名思议:不要编码成 Unicode,让中文更可读。
所以我们写了一个 wpjam_json_encode 函数,相比 wp_json_encode,就是将 $options 参数默认值设置为 JSON_UNESCAPED_UNICODE,这样直接使用 wpjam_json_encode($data),中文就不会被编码成 unicode,更可读。
只要你安装 WPJAM Basic 插件,你的 WordPress 就会有这个函数。
wp_send_json
直接发送 JSON 数据。
wp_send_json( $response, $status_code = null )
他首先输出 application/json 的 Content-Type 头,如果 $status_code 不为空,则输出 $status_code 的状态码。
然后调用 wp_json_encode 对数据进行编码。
wpjam_send_json
wpjam_send_json( $response, $status_code = null )同样为了能够 JSON 编码之后,中文更可读,我们也写了 wpjam_send_json 函数,它和 wp_send_json 几乎一致,只是调用对数据进行编码的函数是 wpjam_json_encode。
另外如果传入的数据是 WP_Error 的实例,那么 wpjam_send_json 直接输出 errcode 和 errmsg JSON。如果没有设置 errcode,则 wpjam_send_json 自动加上 errcode=>0
安装 WPJAM Basic 插件,你的 WordPress 就会有这个函数。
wp_send_json_success 和 wp_send_json_error
WordPress 还提供 wp_send_json_success 和 wp_send_json_error 两个函数:
wp_send_json_success( $data = null, $status_code = null ) wp_send_json_error( $data = null, $status_code = null )
wp_send_json_success 先输出 success 为 true,然后把数据 $data 放到 data 里面输出。wp_send_json_error 则会判断 $data 是否为 WP_Error 实例,如果是,则输出 code 和 message 的数组。我们实现的 wpjam_send_json 已经能够自动化处理这些错误了。
wp_is_json_request
判断当前请求是不是 JSON 请求,或者返回 JSON 结果,这个函数没有参数,直接使用:
wp_is_json_request()
它通过判断 $_SERVER['HTTP_ACCEPT'] 中含有 application/json,或者 $_SERVER['CONTENT_TYPE'] 等于 application/json。
wp_is_jsonp_request
判断当前请求是不是 JSONP 请求,或者返回 JSONP 结果,这个函数没有参数,直接使用:
wp_is_jsonp_request()
它首先判断 $_GET['_jsonp'] ,是否存在,然后通过函数 wp_check_jsonp_callback 判断它的值是否合法。
wp_check_jsonp_callback
判断 JSONP callback 是不是一个一个合法的 JavaScript callback 函数:
wp_check_jsonp_callback( $callback )
合法的 JavaScript callback 函数只能数字加字符,以及英文点号。
本文标签:
很赞哦! ()
相关教程
图文教程
wordpress开启手机版的方法
首先,我们需要通过建设wordpress网站时已经生成的wordpress后台链接,并输入我们已经有了的用户名及后台密码登入我们已经建设好的wordpress网站后台。
wordpress建站的好处有哪些
好处:1、易于使用,格式化所花费的时间可大大减少;2、基于浏览器,用户从任何连接Internet的计算机登录并管理自己的站点;3、创建新页面或博客文章
wordpress自动接入熊掌号的方法
将『你的熊掌号ID』改为你自己真正的熊掌号ID,具体ID获取可以登录熊掌号后点击页面改造后即可看到:
实现无需输入密码的WordPress登录表单功能
无需输入密码的WordPress登录表单如果想在WordPress主题中添加一个不需要输入密码,仅输入用户名或电子邮件即可登录的表单,可以用下面的方法实现。
相关源码
-
(PC+手机)帝国cms7.5漫画图片连载网站源码免费下载本模板基于帝国CMS7.5深度开发,为漫画阅读类网站打造。整体设计风格贴合漫画行业特性,界面布局充分考虑漫画作品的展示需求,支持多种漫画阅读模式。模板采用响应式设计,能够自动适配PC端和移动端设备,为读者提供流畅的阅读体验。查看源码 -
(自适应)变压器电子元器件电器配件pbootcms网站模板源码为电子元器件企业打造的响应式网站模板,基于PbootCMS内核开发,助力企业快速构建专业级线上展示平台。支持页面独立设置标题、关键词和描述,内置SEO友好结构。PHP程序确保运行安全稳定,有助于提升搜索引擎收录效果。查看源码 -
(自适应响应式)水墨风白酒酿制酒业酒文化酒类产品网站源码下载本模板基于PbootCMS内核开发,为酒类企业打造的水墨风响应式网站解决方案。采用传统东方美学设计语言,呈现白酒文化底蕴,自适应移动端展示效果,数据实时同步更新,助力酒企建立专业数字化形象。查看源码 -
(PC+WAP)蓝色低碳环保隔断板装修装饰类网站pbootcms源码下载本款基于PbootCMS开发的网站模板为活动隔断板、装修装饰行业打造,特别适合移动隔断、环保隔断、办公分区等产品的展示与推广。查看源码 -
(自适应)pbootcms模板五金元件气缸气动系统源码下载基于PbootCMS核心开发的气缸气动系统网站模板,为五金元件、气动设备制造企业设计。采用响应式布局技术,自动适配手机、平板等移动设备,确保各类终端用户获得良好浏览体验。查看源码 -
自适应极简风个人博客文章自媒体网站模板基于PbootCMS开源内核开发的极简个人博客模板,采用移动优先设计原则,通过Media Query技术实现320px至1920px六级分辨率适配,确保在手机、平板及PC设备上均呈现良好的视觉体验。查看源码
| 分享笔记 (共有 篇笔记) |

