JSON API – WordPress plugin WordPress插件下载

点击下载

JSON API

插件描述

JSON API允许您使用HTTP请求检索和操作WordPress内容。有三个主要目标:

提供简单,一致的外部接口创建稳定,易懂的内部实现为WordPress启用新类型的扩展

此插件创建于现代艺术博物馆的博客 Inside / Out ,由Ruby on Rails提供。我们选择了一个显示WordPress后端提供的内容的Rails前端,而不是将网站模板重新实现为WordPress主题。 JSON API为检索内容和接受注释提交提供了必要的接口。

有关完整文档,请参阅其他注释部分。

文档

一般概念
1.1。 请求
1.2。 控制器
1.3。 响应 请求方法
2.1。 核心控制器方法
2.2。 发布控制器方法
2.3。 响应控制器方法
2.4。 小组件控制器方法 请求参数
3.1。 输出修改参数
3.2。 内容修改参数
3.3。 使用包含/排除和重定向 响应对象
4.1。 回复后对象
4.2。 类别响应对象
4.3。 标签响应对象
4.4。 作者响应对象
4.5。 评论响应对象
4.6。 附件响应对象扩展JSON API
5.1。 插件挂钩
5.2。 开发JSON API控制器
5.3。 配置选项 单元测试
6.1。 准备WordPress测试站点
6.2。 运行测试

1.一般概念

1.1。请求

请求使用简单的REST样式HTTP GET或POST。要调用API,请在URL中包含 json 的非空查询值。

JSON API以两种模式运行:

通过在任何WordPress页面上将 json 查询var设置为非空值来触发隐式模式。通常出现在该页面上的内容以JSON格式返回。 通过将 json 设置为已知方法字符串来触发显式模式。有关完整的方法列表,请参见第2节:请求方法

隐式模式示例:

http://www.example.org/?json=1 http://www.example.org/?p=47&json= 1 http://www.example.org/tag/banana/?json=1

明确的模式示例:

http://www.example.org /?json = get_recent_posts http://www.example.org/?json=get_post&post_id=47 http://www.example.org/?json=get_tag_posts& tag_slug = banana

配置了用户友好的永久链接:

http://www.example.org/api/get_recent_posts/ http://www.example。 org / api / get_post /?post_id = 47 http://www.example.org/api/get_tag_posts/?tag_slug=banana

进一步阅读
有关修改响应的请求参数的详细信息,请参阅第3节:请求参数

1.2。控制器

1.0版本的JSON API引入了模块化控制器系统。这允许开发人员灵活地向API添加功能,并使用户可以更好地控制他们启用的方法。

核心控制器

1.0版之前可用的大多数方法已移至核心控制器。两个例外是 submit_comment create_post ,它们现在分别可以从Respond和Posts控制器获得。 Core控制器是默认启用的唯一控制器。必须从JSON API设置页面(在WordPress管理菜单中的设置下)启用所有其他功能。

指定控制器

根据您调用API的方式,有几种指定控制器的方法:

http://www.example.org/ ?json = get_recent_posts (隐含核心控制器,方法 get_recent_posts http://www.example.org/api/info/ 核心控制器隐含) http://www.example.org/api/core/get_category_posts/ 核心控制器也可以明确指定) http://www.example.org/?json=respond.submit_comment 回复控制器, submit_comment 方法)

传统兼容性
JSON API保留对其1.0之前的方法的支持。例如,如果在未指定控制器的情况下调用方法 create_post ,则选择Posts控制器而不是Core。

可用控制器

当前版本包括三个控制器:Core,Posts和Respond。鼓励开发人员建议或提交其他控制器。

进一步阅读
参见第2节:请求方法以获取可用控制的完整参考rs和方法。有关使用新控制器扩展JSON API的文档,请参阅第5.2节:开发JSON API控制器

1.3。响应

JSON API的标准响应格式(正如您可能已经猜到的) JSON

以下是来自 http:// localhost / wordpress /?json = 1 的示例响应,在默认的WordPress安装上调用(格式化为可读性):

  {“status”:“ok”,“count”:1,“count_total”:1,“pages”:1,“posts”:[{“id”:1,“type”:“post”,“slug” “:”hello-world“,”url“:”http:\ / \ / localhost \ / wordpress \ /?p = 1“,”title“:”Hello world!“,”title_plain“:”Hello world!“ ,“内容”:“< p>欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始撰写博客!< \ / p> \ n”,“excerpt”:“欢迎使用WordPress。这是你的第一篇文章。编辑或删除它,然后开始写博客!\ n“,”date“:”2009-11-11 12:50:19“,”修改“:”2009-11-11 12:50:19“ ,“categories”:[],“tags”:[],“author”:{“id”:1,“slug”:“admin”,“name”:“admin”,“first_name”:“”,“ last_name“:”“,”昵称“:”“,”url“:”“,”描述ion“:”“},”comments“:[{”id“:1,”name“:”WordPress先生“,”url“:”http:\ / \ / wordpress.org \ /“,”date“: “2009-11-11 12:50:19”,“content”:“< p>嗨,这是评论。< br \ />要删除评论,只需登录并查看帖子的评论。在那里,您可以选择编辑或删除它们。< \ / p> \ n“,”parent“:0}],”comment_count“:1,”comment_status“:”open“}]}< h3> 2.请求方法< / h3>  

请求方法可从以下控制器获得:

核心控制器 – 基本介绍tion methodsPosts controller – posts的数据操作方法响应控制器 – 注释/引用提交方法小部件控制器 – 检索侧边栏小部件

2.1。核心控制器方法

核心控制器提供了一套完整的内省方法,用于从WordPress中检索内容。

方法:info

返回有关JSON API的信息。

可选参数

controller – 返回有关特定控制器的详细信息

响应

  {“status”:“ok”,“json_api_version “:”“1.0”,“控制器”:[“core”]}  

响应“controller = core”

  {“status”:“ok”, “名称”:“核心”,“描述”:“基本内省方法”,“方法”:[...]}< h3>方法:get_recent_posts< / h3>  

返回最近发布的帖子数组。您可以通过将 json 设置为非空值(即 json = 1 )或从任何页面设置 json = get_recent_posts,从WordPress主页调用此方法

可选参数

count – 确定每页返回的帖子数(默认值为10) – 从结果中返回特定页码 post_type – 用于检索自定义帖子类型

响应

  {“status”:“ok”,“count”:10,“count_total”:79,“pages” :7,“帖子”:[{...},{...},...]}< h3>方法:get_posts< / h3>  

根据WordPress的 WP_Query 参数返回帖子。一个默认参数是 ignore_sticky_posts = 1 (可以覆盖它)。

可选论证ments

count – 确定每页返回的帖子数量(默认值为10)页面 – 从结果 post_type 返回特定页码 – 用于检索自定义帖子类型

进一步阅读
有关支持的参数的完整列表,请参阅 WP_Query 文档 post_status 参数当前被忽略。

回复

  {“status”:“ok”,“count”:1,“posts”:[{...}]}< h3>方法:get_post&lt ; / H3>  

返回单个帖子对象。

需要满足以下条件之一

在帖子URL id post_id上隐式调用JSON API(即?json = 1 – 设置到后的ID 蛞蝓 post_slug – 设置到后的URL蛞蝓

可选参数

post_type – 用于检索自定义帖子类型

回复

  {“status”:“ok”,“post”:{...}}< h3>方法:get_page< / h3>  

返回单个页面对象。

需要满足以下条件之一

在页面URL id page_id上​​隐式调用JSON API(即?json = 1 – 设置为页面的ID slug page_slug – 设置为页面的URL slug

可选参数

children – 设置为a非空值以包含子页面的递归层次结构 post_type – 用于检索自定义帖子类型

响应

  {“status”:“ok”,“page “:{...}}< h3>方法:get_date_posts< / h3> 

返回特定日期归档中的帖子/页面数组(按日,月或年)。

需要满足以下条件之一

在日期存档页日期上隐式调用JSON API(即?json = 1 ) – 设置为a日期格式为 YYYY YYYY-MM YYYY-MM-DD (非数字字符从var中删除,因此 YYYYMMDD YYYY / MM / DD 也有效)

可选参数

count – 确定每页返回的帖子数(默认值为10) page – 从结果中返回特定页码 post_type – 用于检索自定义帖子类型

响应

  {“status”:“ok”, “count”:10,“count_total”:79,“pages”:7,“posts”:[{...},{...},...]}< h3>方法:get_category_posts< / h3&gt ;  

返回特定类别中的帖子/页面数组。

需要满足以下条件之一

在类别存档页 id 上隐式调用JSON API(即?json = 1 ) category_id – 设置为类别ID slug category_slug – 设置为类别的URL slug

可选参数

count – 确定方式每页返回许多帖子(默认值为10)页面 – 从结果返回特定页码 post_type – 用于检索自定义帖子类型

响应

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“category”:{...}“posts”:[{... },{...},...]}< h3>方法:get_tag_posts< / h3> 

返回具有特定标记的帖子/页面数组。

需要满足以下条件之一

在标签存档页 id 上隐式调用JSON API(即?json = 1 ) tag_id – 设置为标签的ID slug tag_slug – 设置为标签的URL slug

可选参数

count – 确定如何每页返回许多帖子(默认值为10)页面 – 从结果返回特定页码 post_type – 用于检索自定义帖子类型

响应

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“tag”:{...}“posts”:[{... },{...},...]}< h3>方法:get_author_posts< / h3>  

返回由特定作者编写的帖子/页面数组。

需要满足以下条件之一

在作者存档页 id 上隐式调用JSON API(即?json = 1 ) author_id – 设置为作者的ID slug author_slug – 设置为作者的URL slug

可选参数

count – 确定如何每页返回许多帖子(默认值为10)页面 – 从结果返回特定页码 post_type – 用于检索自定义帖子类型

响应

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“author”:{...}“posts”:[{... },{...},...]}< h3>方法:get_search_results< / h3>  

返回响应搜索查询的帖子/页面数组。

其中一个人due是必需的

在搜索结果页面上隐式调用JSON API(即?json = 1 搜索 – 设置为所需的搜索查询

可选参数

count – 确定每页返回的帖子数量(默认值为10)页面 – 从结果 post_type 返回特定页码 – 用于检索自定义帖子类型

响应

  {“status”:“ok”,“count”:10,“count_total”:79,“pages”:7,“posts”:[{ ...},{...},...]}< h3>方法:get_date_index< / h3>  

返回日期页面永久链接的数组和存档的树结构表示。

回复

  {“status”:“ok”,“永久链接”:[“......”,“......”,“......”],“ tree“:{”2009“:{”09“:17,”10“:20,”11“:7}}  

注意:树由 response.tree排列。[年]。[月]。[帖子数量]

方法:get_category_index

返回活动类别的数组。

可选参数

parent – 返回父ID

的直接子项的类别

   {“status”:“ok” ,“count”:3,“categories”:[{...},{...},{...}]}< h3>方法:get_tag_index< / h3> 

返回活动标记数组。

回复

   {“status”:“ok”,“count”:3“tags”:[{...},{...},{.. 。}]}< h3>方法:get_author_index< / h3> 

返回活动博客作者的数组。

回复

   {“status”:“ok”,“count”:3,“authors”:[{...},{...},{...}]}< h3>方法:get_page_index< / h3> 

返回

个帖子的分层树。

回复

   {“status”:“ok”,“pages”:[{...},{...},{...}]}&lt ; h3>方法:get_nonce< / h3> 

返回调用某些数据操作方法所需的WordPress随机数值。

必需参数 controller - 您将使用nonce进行方法的方法的JSON API控制器 - 您要调用的方法(当前 create_post 是唯一需要nonce的方法。

Response

  {“status”:“ok”,“controller”:“posts”,“method”:“create_post “,”nonce“:”cefe01efd4“}  

进一步阅读
要了解有关如何在WordPress中使用随机数的更多信息,请参阅 Mark Jaquith关于主题

2.2。页面控制器方法

方法:create_post

创建新帖子。

必需参数

nonce – 可从 get_nonce 方法获得(使用vars controller = posts method = create_post调用

可选参数

状态 – 设置帖子状态(“草稿”或“发布”),默认为“草稿”标题 – 帖子标题内容 – 帖子内容作者 – 帖子的作者(登录名),默认是当前登录的用户类别 – 以逗号分隔的类别列表( URL slugs)标签 – 以逗号分隔的标签列表(URL slugs)

注意:包含文件名为附件的上传字段将导致附件与新帖子一起存储。

方法:update_post

更新帖子。

必需参数

nonce – 可从 get_nonce 方法获得(使用vars controller = posts method = update_post调用

需要以下其中一项

id post_id – 设置为帖子的ID slug post_slug – 设置为帖子的URL slug

可选参数

状态 – 设置帖子状态(“草稿”或“发布”),默认为“草稿”标题 – 帖子标题内容 – 帖子内容作者 – 帖子的作者(登录名),默认是当前登录用户类别 – 逗号 – 分隔的类别列表(URL slugs)标记 – 以逗号分隔的标记列表(URL slugs)

注意:包括名为附件的文件上载字段将导致附件与您的帖子一起存储。

方法:delete_post

删除帖子。

必需参数

nonce – 可从 get_nonce 方法获得(使用vars controller = posts method = delete_post调用

需要以下其中一项

id post_id – 设置为帖子的ID slug post_slug – 设置为帖子的URL slug

2.3。响应控制器方法

方法:submit_comment

向WordPress帖子提交评论。

必需参数

post_id – 在名称上发表评论的帖子 – 评论者姓名电子邮件 – 评论者的电子邮件地址内容 – 注释内容

可选参数

重定向 – 重定向而不是返回JSON对象 redirect_ok – 当状态值为时,重定向到特定URL redirect_error – 当状态值为时,重定向到特定URL错误 redirect_pending – 当状态值挂起时,重定向到特定URL

自定义状态值

待处理 – 如果评论提交处于待审核状态,则分配

2.4。窗口小部件控制器方法

方法:get_sidebar

检索分配给侧边栏的窗口小部件。

必需参数

sidebar_id – 要检索的侧边栏的名称或编号

3.请求参数

可以通过指定其中一个来控制API请求以下参数作为URL查询变量。

示例

调试响应: http://www.example.org/api/get_page_index/?dev=1 窗口小部件样式的JSONP输出: http:/ /www.example.org/api/get_recent_posts/?callback=show_posts_widget&read_more=More&count=3 重定向错误: http://www.example.org/api/posts/create_post/? callback_error = http%3A%2F%2Fwww.example.org%2Fhelp.html

3.1。输出修改参数

以下参数修改了从API返回结果的方式。重定向响应样式旨在与数据操作方法一起使用。

回调设置为JavaScript函数名称将触发JSONP样式的回调。将重定向设置为URL将导致用户的浏览器重定向到指定的URL,并将状态值附加到查询变量(请参阅响应对象下面的部分,用于解释状态值。)设置 redirect_ [status] 可以根据状态值控制生成的浏览器重定向。设置 dev 为非空值添加空白以便于阅读并使用 text / plain 进行响应除非将 dev 设置为非空值,否则将禁止错误设置 json_encode_options 将允许您指定一个整数位掩码来修改 PHP的 json_encode 的行为(注意:此选项仅在PHP版本5.3+中被识别)设置 json_unescaped_unicode 将替换unicode-escaped字符及其未转义的等价物(例如, \ u00e1

变为á)省略所有上述参数将导致标准的JSON响应。

3.2。内容修改参数

这些参数可用于修改所有内省方法: date_format - 更改日期值的格式。使用与PHP的date()函数相同的语法。默认值为 Y-m-d H:i:s read_more - 更改帖子内容中的“阅读更多”链接文字。 include – 指定要包含的发布数据字段。期望以逗号分隔的帖子字段列表。保留此空包括所有字段。 exclude - 指定要排除的发布数据字段。期望以逗号分隔的帖子字段列表。 custom_fields - 包含帖子的自定义字段中的值。期望以逗号分隔的自定义字段键列表。 author_meta - 包括其他作者元数据。应该是以逗号分隔的元数据字段列表。 count - 控制要包含的帖子数量(默认为WordPress指定的数量) order - 控制发布结果的顺序('DESC'或'ASC')。默认值为“DESC”。 order_by - 控制按结果排序的字段。预计具有以下值之一:作者 日期(默认值)标题 已修改 menu_order (仅适用于页数) ID rand meta_value meta_key 也必须设置) comment_count meta_key meta_value meta_compare

– 根据自定义字段键或值检索帖子(或页面)。

3.3。使用包含/排除和重定向

关于包括 / 排除参数

null

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号