前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress JSON REST API简单介绍及使用

WordPress JSON REST API简单介绍及使用

作者头像
kl博主
发布2023-11-17 19:24:14
1K0
发布2023-11-17 19:24:14
举报
文章被收录于专栏:kl的专栏

WordPress JSON REST API (WP API) 简介

这个插件(WordPress JSON REST API (WP API))提供了一个易于使用的REST API,让我们可以通过HTTP获取简单方便的JSON格式的数据,这些数据包括用户,文章,分类等等。获取或更新数据非常简单,只需要发送一个HTTP请求就可以了。

需要获取网站的文章?只需要发送一个GET请求到/wp-json/posts,需要更新ID为4的用户?只需要发送一个POST请求到/wp-json/users/4,搜索关键词为 “awesome”的所有文章,发送一个GET请求到/wp-json/posts?filter[s]=awesome,一切就是这么简单!

WP API为WP查询创建了一个简单而方便的接口,文章API,文章元数据API,用户API,版本API等等。WordPress能做的事情,WP API同样可以让你做到,并且更加方便。

WP API同时还包含了方便使用的基于Backbone models的Javascript API,这就允许插件和主题开发者无需了解任何任何细节即可进行开发。

WordPress JSON REST API (WP API)的使用

WP REST API插件的使用还是非常简单的,在Wordpress后台下载安装好WP REST API插件后,启用插件,注意:要先开启Wordpress的固定链接才行。在网站地址添加/wp-json/即可访问,以下是使用细则

创建一篇文章

代码语言:javascript
复制
POST /posts

需要认证

输入

传入的data参数被用来创建Post 对象,数据可以用HTTP multipart body的形式提交,也可以直接使用JOSN格式。所以,下面的两种方式是等效的。

代码语言:javascript
复制
Content-Type: application/x-www-form-urlencoded
data[title]=Hello%20World!&data[content_raw]=Content&data[excerpt_raw]=Excerpt
代码语言:javascript
复制
Content-Type: application/json
{”title”:”Hello World!”,”content_raw”:”Content”,”excerpt_raw”:”Excerpt”}

data参数应该是一个包含以下键值对的对象。

title – 文章标题 (string) required

content_raw – 文章内容 (string) required

excerpt_raw – 文章摘要 (string) optional

name – 文章别名 (string) optional

status – 文章状态,可以是: draft, publish, pending, future, private, 或其他自定义文章状态,如果提供的文章状态为 future,必须同时提交一个日期作为文章的发布日期,默认为draft. (string) optional

type – 文章类型,可以是: post, page, link, nav_menu_item, 或其他自定义文章类型. 默认为post. (string) optional

date – 发布文章的本地日期和时间. 日期应该是一个 RFC3339 时间戳(http://tools.ietf.org/html/rfc3339). 例如: 2014-01-01T12:20:52Z. 默认为本地日期和时间. (string) optional

date_gmt – 文章发布的UTC日期和时间,日期应该为一个 RFC3339 时间戳. 例如: 201401-01T12:20:52Z. 默认为当前的 GMT 日期和时间. (string) optional

author – 文章的作者,作者可以为作者ID或作者对象,默认为当前作者。(object | string) optional

password – 用来保护文章的密码,默认为空字符串 (string) optional

post_parent – 父级文章的ID,默认为0. (integer) optional

post_format – 文章格式,默认为standard. (string) optional

menu_order – 页面的顺序序号,默认为0 (integer) optional

comment_status – 文章的评论状态:open or closed. 用以确定用户是否可以发表评论,默认为设置选项 ‘default_comment_status’的值, 或 ‘closed’. (string) optional

ping_status – 文章的ping状态: open or closed。用来确定用户是否可以提交pibgbacks和trackbacks,默认为设置选项 ‘default_ping_status’的值. (string) optional

sticky – 文章的置顶状态: true or false. 默认为 false. (boolean) optional

post_meta – 文章的元数据,文章元数据应该是一个或多个元数据对象的数组,查看使用端点键值对创建文章元数据章节。 (array) optional

返回

如果文章创建成功,会返回一个201状态码,说明文章已经被创建,从地址头可以看到文章的URL信息,为方便使用,文章的主要内容也会在返回的HTTP body中显示。

如果没有授权,将返回一个403 未授权状态码。

获取文章

文章端点返回一个包含了站点文章的一个子集。

代码语言:javascript
复制
GET /posts

输入

过滤

filter 参数控制用于文章查询的参数。

注意:只有 “公开” 查询参数可以通过API使用,因为不是所有的查询参数可以安全的暴露出来。只有具有edit_posts权限的授权用户才能使用 “私有” 查询参数。其他查询参数可以通过query_vars过滤器注册,或通过json_query_vars注册API专用查询参数。

更多可用查询参数请参考WordPress官方文档,下面是可以在API中使用的查询参数:

  • m
  • p
  • posts
  • w
  • cat
  • withcomments
  • withoutcomments
  • s
  • search
  • exact
  • sentence
  • calendar
  • page
  • paged
  • more
  • tb
  • pb
  • author
  • order
  • orderby
  • year
  • monthnum
  • day
  • hour
  • minute
  • second
  • name
  • category_name
  • tag
  • feed
  • author_name
  • static
  • pagename
  • page_id
  • error
  • comments_popup
  • attachment
  • attachment_id
  • subpost
  • subpost_id
  • preview
  • robots
  • taxonomy
  • term
  • cpage
  • post_type
  • posts_per_page

如果用户已经获得了授权,下面的私有查询参数,可以在发表和编辑文章时使用:

  • offset
  • posts_per_archive_page
  • showposts
  • nopaging
  • post_type
  • post_status
  • category__in
  • category__not_in
  • category__and
  • tag__in
  • tag__not_in
  • tag__and
  • tag_slug__in
  • tag_slug__and
  • tag_id
  • post_mime_type
  • perm
  • comments_per_page
  • post__in
  • post__not_in
  • post_parent
  • post_parent__in
  • post_parent__not_in
代码语言:javascript
复制
GET /posts?filter[posts_per_page]=8&filter[order]=ASC

上下文

context 参数控制返回的数据类型,具体查看获取文章端点的可用上下文。

默认为 “view”. (string)

类型

type参数指定获取文章的文章类型,可以是一个字符串或一个文章类型的数组。

注意数组需要使用 [] URL 语法定义 ,例如:

代码语言:javascript
复制
GET /posts?type[]=post&type[]=page

默认为 “post” (string)

返回

如果请求的文章存在,将返回包含所请求文章的一个集合。

获取一篇文章

代码语言:javascript
复制
GET /posts/

输入

context

上下文参数控制数据返回的格式。可用的上下文参数有:

view: 默认上下文,输出普通的用户内容。

edit: 更新文章时用来添加附加字段,包括 title_raw, content_raw, guid_raw 和自定义字段, 以适应文章编辑。

parent: 上下文在嵌入另一个(如文章作者)的返回时使用。这样做是为了使用用户数据的最小子集来减少响应大小。返回父字段作为一个ID,而不是一个嵌入的文章,以确保我们不会遍历后面的整个层次结构。

返回

如果请求的文章存在,将返回请求文章内容,返回的字段根据context参数所定。

编辑文章

代码语言:javascript
复制
PUT /posts/

需要授权

出于兼容性考虑,这个端点同时接受POST和PATCH方法。因为都使用PUT方法,这两种方法都有相同的行为。建议使用PUT(如果可用),以适应REST约定。

输入

数据参数包括需要修改的文章ID和文章对象。数据可以用HTTP multipart body的形式提交,也可以直接用JOSN格式。请参阅创建文章端点的例子。

和发布文章一样,data参数应该是一个包含以下键值对的对象,唯一不一样的就是编辑文章的参数中多了一个文章ID,编辑文章的数据参数和发布文章是一样的,这里就不再一一翻译了,请参照编辑文章的键值字符串部分。

返回

如果文章创建成功,会返回一个201状态码,说明文章已经被更新,从地址头可以看到文章的URL信息,为方便使用,文章的主要内容也会在返回的主题中显示。

删除文章

代码语言:javascript
复制
DELETE /posts/

需要授权

输入

FORCE

force参数控制删除操作是移动到回收站或永久删除,默认为false,指定文章被移动到回收站,如果设置为true,文章将被永久删除。

默认为 false. (boolean)

返回

如果删除成功,会返回一个202已接受状态码,说明文章已经被移动到回收站,稍后可以永久删除。如果请求中设置了force选项,将返回一个200 OK状态码,说明文章已经被永久删除。

如果发出请求的客户端未授权,返回一个403 错误码。

获取文章版本

代码语言:javascript
复制
GET /posts//revisions

需要授权

返回

如果请求成功,返回一个200 OK状态码和指定文章的版本。

如果发出请求的客户端未授权,返回一个403 错误码。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WordPress JSON REST API (WP API) 简介
  • WordPress JSON REST API (WP API)的使用
  • 创建一篇文章
    • 输入
      • 返回
      • 获取文章
        • 输入
          • 过滤
        • 上下文
          • 类型
            • 返回
            • 获取一篇文章
              • 输入
                • 返回
                • 编辑文章
                  • 输入
                    • 返回
                    • 删除文章
                      • 输入
                        • 返回
                          • 获取文章版本
                            • 返回
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档