高版本的wp(大概是4.x+),提供了 rest api ,并默认开启。我们通过访问 xx.com/wp-json 就能访问基础的api。
在网上看到的中文整理比较陈旧,英文官网429to many requests,在国内打不开了。我在这里简单整理一份。
目前以 GET 信息为主。
全局参数
筛选相关
_fields
api会返回较多数据,可以通过 _fields 筛选必要的结果。合理使用筛选能够加快api响应速度和传输速率。合理的返回结果页有利于前端进一步加工数据。所以每次的请求应该构建合适的 _fields 参数。
demo如下:
/wp-json/wp/v2/posts?_fields=id,date,content,excerpt,categories
这个结构,请求了网站的新闻列表,返回的信息比较整齐,冗余少。
构建参数,除了逗号分隔,也可以使用参数数据的方法,一般不常用。做参考
/wp/v2/posts?_fields[]=author&_fields[]=id&_fields[]=excerpt&_fields[]=title&_fields[]=link
注意:wp5.3+版本之后支持嵌套查询,对版本要求较高,收益不大,先忽略。
分页相关
key|value|description
page|1|分页
per_page|10|每页结果数
offset |1|跳过的结果数量
order|desc asc|默认倒序排列
orderby | date id includet title slug 等 | 排序字段
分页时候,返回的响应头里,包含两个字段:
- x-wp-total 总数量
- x-wp-totalpages 总页数
方便之后做分页
API 介绍
获取文章列表
wp-json/wp/v2/posts
返回的字段
- date 发布日期
- date_gmt gmt是国际时区0的时间
- guid 唯一识别符
- id 新闻id
- modified 修改时间
- slug 字母识别符
- status publish 公开
- excerpt 摘要
- fuatured_media 特色媒体id
- title content categories 等
参数
- before after 时间戳 时间范围内的结果
- author 或 author_exclude 特定作者
- include exclude 指定id,不包含指定id
- categories categories_exclude 包含的栏目
获取文章详情
传入id返回文章详情
/wp/v2/posts/<id>
获取栏目
/wp/v2/categories
返回的字段,比较平常。特殊的:
- parent 父类id
可以通过 post id 找到所在栏目
可以通过 category id 找到子栏目 方便做导航 0 默认大站
/v2/categories?parent=3
搜索
先略。