wordpress 外部数据接口_WordPress Rest API 最细接口详解

本文详述了如何使用WordPress REST API进行移动应用开发,涵盖用户注册、登录、获取和修改用户信息、文章与评论管理等关键接口。通过接口测试和实践,展示了如何利用这些接口实现iOS app与WordPress的无缝集成。

0、前言

感觉好久没有写点比较有内容的blog了。一直没什么空,最近假期刚好有点时间,回顾之前忙的东西,刚好可以对前段时间对wordpress(下面简称:wp)将其应用到iOS的app移动开发应用当中的调研结果进行总结。我觉得这个挺有意思的,而且有必要做个笔记。

我做iOS开发也有几年了,什么是wordpress都没听说过,认为是一个很偏的存在。心里面充满了疑问,wp是什么?有什么用?我能拿来干嘛?

于是带着这些问题,先科普一下:

WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。

这是百度百科对它的定义,大概有了模糊的了解,如有兴趣进一步了解来龙去脉点击这里查看

通过上面我们基本了解wp的是一个适用广泛、拓展性很强、插件很多的开发博客页面的框架。而且该框架已经比较成熟,已经有对应的后台、安卓、web的开发教程。很遗憾的就是没有iOS开发教程。为此才开启了我的调研过程。作为移动端对wp的解读,本质上就是对WordPress

Rest API插件的解读。即将接口和参数字段摸索出来并得到应用。通过中文网站和诸多博客的借鉴、以及通过多天的亲自测试了解。得到了一套比较有用的最新的API接口:

注:

1、以下接口拼接自己的域名,如:http://chenzimin.example.cn。

2、在wpAPI文档中,有些接口没有提供,建站时需要后台服务器帮助提供,以下我这边是自己后台服务器提供接口用米字号作*标记。

3、以下接口get请求一般请求头可以不带token。

4、wo记得没错的话,wp的token有效期为24小时。

1、登录注册模块

1.1、用户注册 *

请求协议|请求方法:HTTP|POST

接口路径:/fapi/userregster.php

请求参数:

参数名

说明

类型

username

用户名,必填

[string]

password

密码,必填

[string]

email

邮箱

[string]

nickname

昵称

[string]

phone

手机号

[string]

成功示例:

24

直接返回新用户id。

1.2、获取Token

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/jwt-auth/v1/token

请求参数

参数类型:表单

参数名

说明

必填

类型

username

用户名

[string]

password

密码

[string]

成功示例:

{

"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC96aG91YnV5aS5tZWlsYXNoaWRhaS5jbiIsImlhdCI6MTU4Njc2NDA3MCwibmJmIjoxNTg2NzY0MDcwLCJleHAiOjE1ODczNjg4NzAsImRhdGEiOnsidXNlciI6eyJpZCI6IjIyIn19fQ.7kgtWfUTlm6tbZX63V7OEpo08PAxakZiK4e9DE6Nvb8",

"user_email":"",

"user_nicename":"100022",

"user_display_name":"1111111"

}

1.3、验证Token

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/jwt-auth/v1/token/validate

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

成功示例:

{

"code":"jwt_auth_valid_token",

"data":{

"status":200

}

}

注意点1: 获取的token要放在请求头,并且token值的格式必须为:Bearer+token值,否侧无法判断。

注意点2: 要实现这个接口,需要后台服务器授权验证,详细参考:使用 JWT Authentication 验证

WordPress REST API 权限,只有授权验证处理通过,这个接口才能请求成功,否则会返回错误,要求授权。

1.4、账户登录 *

请求协议|请求方法:HTTP|POST

接口路径:/fapi/loginwithtoken.php

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数:

参数名

说明

必填

类型

username

用户名

[string]

pwd

密码

[string]

成功示例:

{

"data":{

"ID":"22",

"user_login":"1111111",

"user_pass":"$P$BSz.lD0LqQxK/v8E9Un1Cc3VwnURpp.",

"user_nicename":"100022",

"user_email":"wyp001@123.com",

"user_url":"",

"user_registered":"2020-04-13 07:23:02",

"user_activation_key":"",

"user_status":"0",

"display_name":"1111111",

"father_id":"0",

"reg_ip":""

},

"ID":22,

"caps":{

"author":true

},

"cap_key":"wp_capabilities",

"roles":[

"author"

],

"allcaps":{

"upload_files":true,

"edit_posts":true,

"edit_published_posts":true,

"publish_posts":true,

"read":true,

"level_2":true,

"level_1":true,

"level_0":true,

"delete_posts":true,

"delete_published_posts":true,

"author":true

},

"filter":null

}

1.5、获取用户信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/users/me

请求头部:

头部标签

必填

头部内容

Authorization

用户token,格式:Bearer+token

成功示例:

{

"id":22,

"name":"1111111",

"url":"",

"description":"描述啊描述",

"link":"http://chenzimin.example.cn/author/100022/",

"slug":"100022",

"avatar_urls":{

"24":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=24&d=mm&r=g",

"48":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=48&d=mm&r=g",

"96":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=96&d=mm&r=g"

},

"meta":[

],

"woocommerce_meta":{

"activity_panel_inbox_last_read":"",

"activity_panel_reviews_last_read":"",

"categories_report_columns":"",

"coupons_report_columns":"",

"customers_report_columns":"",

"orders_report_columns":"",

"products_report_columns":"",

"revenue_report_columns":"",

"taxes_report_columns":"",

"variations_report_columns":"",

"dashboard_sections":"",

"dashboard_chart_type":"",

"dashboard_chart_interval":"",

"dashboard_leaderboard_rows":""

},

"_links":{

"self":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users/22"

}

],

"collection":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users"

}

]

}

}

1.6、修改用户信息

wpAPI中没有找到该接口,是根据获取用户信息get方法,推理出来,修改用户信息为post,测试部分字段有效,以下请求参数列表,是个人认为会有用到,才罗列出来的。

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/wp/v2/users/me

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数名

说明

必填

类型

name

显示名称

[string]

first_name

名字

[string]

last_name

姓氏

[string]

email

邮箱

[string]

locale

语言设置,默认:zh_CN

[string]

nickname

昵称

[string]

roles

如:[ “author” ]

[array]

capabilities

功能分类设置,查看返回结果

[string]

avatar_urls

头像,如:{ “24”:“http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=24&d=mm&r=g”,

“48”:“http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=48&d=mm&r=g”,

“96”:“http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=96&d=mm&r=g” }。

[object]

woocommerce_meta

店铺的相关配置

[string]

成功示例:

{

"id":22,

"username":"1111111",

"name":"测试将name1111111修改ceshi",

"first_name":"",

"last_name":"",

"email":"wyp001@123.com",

"url":"",

"description":"描述啊描述",

"link":"http://chenzimin.example.cn/author/100022/",

"locale":"zh_CN",

"nickname":"1111111",

"slug":"100022",

"roles":[

"author"

],

"registered_date":"2020-04-13T07:23:02+00:00",

"capabilities":{

"upload_files":true,

"edit_posts":true,

"edit_published_posts":true,

"publish_posts":true,

"read":true,

"level_2":true,

"level_1":true,

"level_0":true,

"delete_posts":true,

"delete_published_posts":true,

"author":true

},

"extra_capabilities":{

"author":true

},

"avatar_urls":{

"24":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=24&d=mm&r=g",

"48":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=48&d=mm&r=g",

"96":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=96&d=mm&r=g"

},

"meta":[

],

"woocommerce_meta":{

"activity_panel_inbox_last_read":"",

"activity_panel_reviews_last_read":"",

"categories_report_columns":"",

"coupons_report_columns":"",

"customers_report_columns":"",

"orders_report_columns":"",

"products_report_columns":"",

"revenue_report_columns":"",

"taxes_report_columns":"",

"variations_report_columns":"",

"dashboard_sections":"",

"dashboard_chart_type":"",

"dashboard_chart_interval":"",

"dashboard_leaderboard_rows":""

},

"_links":{

"self":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users/22"

}

],

"collection":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users"

}

]

}

}

1.7、获取所有的用户信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/users

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

1.8、获取指定用户ID的用户信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/users/用户id,如:1

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

2、页面

2.1、获取所有的页面信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/pages

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

2.2、获取指定页面ID的页面信息

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/wp/v2/pages/289

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

3、文章的分类和标签

3.1、获取文章分类数组

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/categories

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

成功示例:

[

{

"id":14,

"count":13,

"description":"",

"link":"http://chenzimin.example.cn/category/%e5%85%ab%e5%8d%a6%e5%8d%a6%e8%b1%a1/",

"name":"八卦卦象",

"slug":"%e5%85%ab%e5%8d%a6%e5%8d%a6%e8%b1%a1",

"taxonomy":"category",

"parent":0,

"meta":[

],

"_links":{

"self":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/categories/14"

}

],

"collection":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/categories"

}

],

"about":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/taxonomies/category"

}

],

"wp:post_type":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts?categories=14"

}

],

"curies":[

{

"name":"wp",

"href":"https://api.w.org/{rel}",

"templated":true

}

]

}

},

]

3.2、获取指定分类ID的分类信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/categories/分类id

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

3.3、获取文章的所有标签

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/tags

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

3.4、获取指定标签ID的标签信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/tags/标签id

接口使用状态:正常启用

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

3.5、获取当前wp所有的内容类型

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/types

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

3.6、获取指定内容类型

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/types/(post|page|attachment 三种类型)

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

4、文章

核心模块

4.1、获取文章列表

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/posts

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数:

参数名

说明

必填

类型

page

指定要返回的结果的页面

[string]

per_page

返回的记录数,指定为1到100之间的整数

[string]

offset

指定开始检索帖子的任意偏移量.offset = 6将使用每页的默认帖子数,但从集合中的第6个帖子开始

[string]

order

默认降序。order = asc(升序)、order = desc(降序)。

[string]

orderby

控制集合被排序的字段,默认为orderby = date。有效值为“date”,“relevance”,“id”,“include”,“title”和“slug” 有关其他集合支持的值,请参阅REST

API参考

[string]

成功示例:

[

{

"id":165,

"date":"2020-03-10T16:06:43",

"date_gmt":"2020-03-10T08:06:43",

"guid":{

"rendered":"/?p=165"

},

"modified":"2020-03-10T16:07:10",

"modified_gmt":"2020-03-10T08:07:10",

"slug":"%e5%85%ad%e7%88%bb%e7%ad%91%e5%9f%ba%e7%ac%ac%e4%b8%80%e5%85%b3-%e5%85%ab%e5%8d%a6%e5%8d%a6%e8%b1%a1%e4%b9%8b%e5%85%91%e5%ae%ab%e5%85%ab%e5%8d%a6",

"status":"publish",

"type":"post",

"link":"/2020/03/10/%e5%85%ad%e7%88%bb%e7%ad%91%e5%9f%ba%e7%ac%ac%e4%b8%80%e5%85%b3-%e5%85%ab%e5%8d%a6%e5%8d%a6%e8%b1%a1%e4%b9%8b%e5%85%91%e5%ae%ab%e5%85%ab%e5%8d%a6/",

"title":{

"rendered":"文章标题"

},

"content":{

"rendered":"文章内容",

"protected":false

},

"excerpt":{

"rendered":"文章摘要",

"protected":false

},

"author":1,

"featured_media":0,

"comment_status":"open",

"ping_status":"open",

"sticky":false,

"template":"",

"format":"standard",

"meta":{

"_links_to":"",

"_links_to_target":""

},

"categories":[

14

],

"tags":[

],

"_links":{

"self":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts/165"

}

],

"collection":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts"

}

],

"about":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/types/post"

}

],

"author":[

{

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users/1"

}

],

"replies":[

{

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/comments?post=165"

}

],

"version-history":[

{

"count":0,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts/165/revisions"

}

],

"wp:attachment":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/media?parent=165"

}

],

"wp:term":[

{

"taxonomy":"category",

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/categories?post=165"

},

{

"taxonomy":"post_tag",

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/tags?post=165"

}

],

"curies":[

{

"name":"wp",

"href":"https://api.w.org/{rel}",

"templated":true

}

]

}

}

]

4.2、获取文章详情

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/posts/文章id

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数名

说明

必填

类型

值可能性

context

上下文参数控制数据返回的格式

[string]

view:默认上下文,输出普通的用户内容。edit:更新文章时用来添加附加字段,包括 title_raw, content_raw, guid_raw 和自定义字段,

以适应文章编辑。parent:上下文在嵌入另一个(如文章作者)的返回时使用。这样做是为了使用用户数据的最小子集来减少响应大小。返回父字段作为一个

ID,而不是一个嵌入的文章,以确保我们不会遍历后面的整个层次结构。

成功示例:

{

"id":165,

"date":"2020-03-10T16:06:43",

"date_gmt":"2020-03-10T08:06:43",

"guid":{

"rendered":"http://chenzimin.example.cn/?p=165"

},

"modified":"2020-03-10T16:07:10",

"modified_gmt":"2020-03-10T08:07:10",

"slug":"%e5%85%ad%e7%88%bb%e7%ad%91%e5%9f%ba%e7%ac%ac%e4%b8%80%e5%85%b3-%e5%85%ab%e5%8d%a6%e5%8d%a6%e8%b1%a1%e4%b9%8b%e5%85%91%e5%ae%ab%e5%85%ab%e5%8d%a6",

"status":"publish",

"type":"post",

"link":"http://chenzimin.example.cn/2020/03/10/%e5%85%ad%e7%88%bb%e7%ad%91%e5%9f%ba%e7%ac%ac%e4%b8%80%e5%85%b3-%e5%85%ab%e5%8d%a6%e5%8d%a6%e8%b1%a1%e4%b9%8b%e5%85%91%e5%ae%ab%e5%85%ab%e5%8d%a6/",

"title":{

"rendered":"文章标题"

},

"content":{

"rendered":" ",

"protected":false

},

"excerpt":{

"rendered":"文章摘要",

"protected":false

},

"author":1,

"featured_media":0,

"comment_status":"open",

"ping_status":"open",

"sticky":false,

"template":"",

"format":"standard",

"meta":{

"_links_to":"",

"_links_to_target":""

},

"categories":[

14

],

"tags":[

],

"_links":{

"self":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts/165"

}

],

"collection":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts"

}

],

"about":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/types/post"

}

],

"author":[

{

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users/1"

}

],

"replies":[

{

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/comments?post=165"

}

],

"version-history":[

{

"count":0,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts/165/revisions"

}

],

"wp:attachment":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/media?parent=165"

}

],

"wp:term":[

{

"taxonomy":"category",

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/categories?post=165"

},

{

"taxonomy":"post_tag",

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/tags?post=165"

}

],

"curies":[

{

"name":"wp",

"href":"https://api.w.org/{rel}",

"templated":true

}

]

}

}

4.3、创建一篇文章

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/wp/v2/posts

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数名

说明

必填

类型

值可能性

title

文章标题

[string]

content

文章内容

[string]

excerpt_raw

文章摘要

[string]

status

文章状态,默认为draft. (string) optional

[string]

draft:草稿,publish:发表,pending:待定, future:未来, private:私有

categories

文章标题分类,传分类id

[string]

comment_status

文章的评论状态,默认为设置选项 ‘default_comment_status’的值, 或 ‘closed’. (string) optional

[string]

open:打开,closed:关闭

ping_status

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

[string]

open:打开,closed:关闭

sticky

文章的置顶状态。默认为 false. (boolean) optional

[string]

true:置顶,false:不置顶

author

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

[string]

name

文章别名

[string]

password

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

[string]

type

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

[string]

post_parent

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

[string]

post_format

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

[string]

menu_order

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

[string]

post_meta

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

[string]

date

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

默认为本地日期和时间. (string) optional

[string]

date_gmt

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

[string]

成功示例:

{

"id": 591,

"date": "2020-04-14T10:33:02",

"date_gmt": "2020-04-14T02:33:02",

"guid": {

"rendered": "http://chenzimin.example.cn/?p=591",

"raw": "http://chenzimin.example.cn/?p=591"

},

"modified": "2020-04-14T10:33:02",

"modified_gmt": "2020-04-14T02:33:02",

"password": "",

"slug": "",

"status": "draft",

"type": "post",

"link": "http://chenzimin.example.cn/?p=591",

"title": {

"raw": "1212",

"rendered": "1212"

},

"content": {

"raw": "1212",

"rendered": "

1212

\n",

"protected": false,

"block_version": 0

},

"excerpt": {

"raw": "",

"rendered": "

1212

\n",

"protected": false

},

"author": 22,

"featured_media": 0,

"comment_status": "open",

"ping_status": "open",

"sticky": false,

"template": "",

"format": "standard",

"meta": {

"_links_to": "",

"_links_to_target": ""

},

"categories": [

14

],

"tags": [],

"permalink_template": "http://chenzimin.example.cn/2020/04/14/%postname%/",

"generated_slug": "1212-2",

"_links": {

"self": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts/591"

}

],

"collection": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts"

}

],

"about": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/types/post"

}

],

"author": [

{

"embeddable": true,

"href": "http://chenzimin.example.cn/wp-json/wp/v2/users/22"

}

],

"replies": [

{

"embeddable": true,

"href": "http://chenzimin.example.cn/wp-json/wp/v2/comments?post=591"

}

],

"version-history": [

{

"count": 0,

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts/591/revisions"

}

],

"wp:attachment": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/media?parent=591"

}

],

"wp:term": [

{

"taxonomy": "category",

"embeddable": true,

"href": "http://chenzimin.example.cn/wp-json/wp/v2/categories?post=591"

},

{

"taxonomy": "post_tag",

"embeddable": true,

"href": "http://chenzimin.example.cn/wp-json/wp/v2/tags?post=591"

}

],

"wp:action-publish": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts/591"

}

],

"wp:action-assign-categories": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts/591"

}

],

"wp:action-create-tags": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts/591"

}

],

"wp:action-assign-tags": [

{

"href": "http://chenzimin.example.cn/wp-json/wp/v2/posts/591"

}

],

"curies": [

{

"name": "wp",

"href": "https://api.w.org/{rel}",

"templated": true

}

]

}

}

4.4、编辑文章

请求协议|请求方法:HTTP|PUT

接口路径:/wp-json/wp/v2/posts/文章id

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数名

说明

必填

类型

备注

所有参数同创建文章

[string]

4.5、删除文章

请求协议|请求方法:HTTP|DELETE

接口路径:/wp-json/wp/v2/posts/文章id

接口使用状态:正常启用

请求头部:

| 头部标签 | 必填 | 头部内容 |

| :------------ | :------------ |

|Authorization|是|Bearer+token|

请求参数

参数名

说明

必填

类型

值可能性

限制

示例

force

[string]

false:指定文章被移动到回收站,默认,true:文章将被永久删除

4.6、文章点赞 *

请求协议|请求方法:HTTP|POST

接口路径:/fapi/setpostlike.php

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数名

说明

必填

类型

postid

文章id

[string]

4.7、获取文章版本

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/posts/文章id/revisions

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

成功示例:

返回一个 200 OK 状态码和指定文章的版本

4.8、付费文章列表 *

请求协议|请求方法:HTTP|GET

接口路径:/fapi/getproductlist.php

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数名

说明

必填

类型

numberposts

1

[string]

post_type

product

[string]

pagenum

[string]

5、文章评论

5.1、获取某文章所有的评论

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/comments

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数:

参数名

说明

必填

类型

post

文章ID

[string]

parent

父级评论id,0表示父级。添加该字段则获取文章的所有一级评论

[string]

成功示例:

[

{

"id":8,

"post":601,

"parent":7,

"author":1,

"author_name":"admin",

"author_url":"",

"date":"2020-04-15T09:33:14",

"date_gmt":"2020-04-15T01:33:14",

"content":{

"rendered":"不错不错 "

},

"link":"http://chenzimin.example.cn/2020/04/14/%e6%b7%bb%e5%8a%a0%e5%88%b0%e5%a1%94%e7%bd%97%e7%89%8c%e5%88%86%e7%b1%bb/#comment-8",

"status":"approved",

"type":"comment",

"author_avatar_urls":{

"24":"http://cn.gravatar.com/avatar/d87e1904bcb5bd85ad6882da2b2d9165?s=24&d=mm&r=g",

"48":"http://cn.gravatar.com/avatar/d87e1904bcb5bd85ad6882da2b2d9165?s=24&d=mm&r=g",

"96":"http://cn.gravatar.com/avatar/d87e1904bcb5bd85ad6882da2b2d9165?s=24&d=mm&r=g"

},

"meta":[

],

"_links":{

"self":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/comments/8"

}

],

"collection":[

{

"href":"http://chenzimin.example.cn/wp-json/wp/v2/comments"

}

],

"author":[

{

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/users/1"

}

],

"up":[

{

"embeddable":true,

"post_type":"post",

"href":"http://chenzimin.example.cn/wp-json/wp/v2/posts/601"

}

],

"in-reply-to":[

{

"embeddable":true,

"href":"http://chenzimin.example.cn/wp-json/wp/v2/comments/7"

}

]

}

},

]

5.2、获取指定评论详情

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/wp/v2/comments/评论id

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

5.3、创建一条文章评论

注: 我记得测试这个接口的时候,一直提示权限有问题。后来因为其他事情没有继续往下处理了。哪位大神要是看到这里,帮测试一下,移动端是否可以创建评论。

请求协议|请求方法:HTTP|POST

接口路径:/wp-json/wp/v2/comments

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

请求参数

参数类型:表单

参数名

说明

必填

类型

post

文章id

[string]

content

评论内容

[string]

parent

评论所属父评论id,默认为0,即一级评论

[string]

author_name

评论者的名称

[string]

author_email

评论者邮箱

[string]

author_url

评论者url地址

[string]

6、媒体文件

6.1、获取所有的媒体信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/media

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

6.2、获取指定媒体ID的媒体信息

请求协议|请求方法:HTTP|GET

接口路径:/wp-json/wp/v2/media/媒体ID

请求头部:

头部标签

必填

头部内容

Authorization

Bearer+token

7、总结

通过接口的测试和了解,wp的主要功能包括:用户的登录注册、获取文章分类、获取文章详情、新增|修改|删除文章、评论文章、点赞文章和评论。

那么可以实现移动端资讯类app的基本应用。如果个人|团队想构建一个比较简单的资讯类项目的话,应用wp框架是一个比较不错的选择。

说到iOS端创建文章的话,那就必须要用到富文本编辑器了。于是我就顺便了解了

下iOS端富文本编辑器框架,发现这一类的却不多,个人感觉来说,比较好用的,bug比较少的就一个:WGEditor-mobile,谁有比较好的富文本编辑器框架的童鞋,欢迎留言!

参考链接:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值