高版本的wp(大概是4.x+),提供了 rest api ,并默认开启。我们通过访问 xx.com/wp-json 就能访问基础的api。

在网上看到的中文整理比较陈旧,英文官网429to many requests,在国内打不开了。我在这里简单整理一份。

目前以 GET 信息为主。

全局参数

筛选相关

_fields

api会返回较多数据,可以通过 _fields 筛选必要的结果。合理使用筛选能够加快api响应速度和传输速率。合理的返回结果页有利于前端进一步加工数据。所以每次的请求应该构建合适的 _fields 参数。
demo如下:

  1. /wp-json/wp/v2/posts?_fields=id,date,content,excerpt,categories

这个结构,请求了网站的新闻列表,返回的信息比较整齐,冗余少。

构建参数,除了逗号分隔,也可以使用参数数据的方法,一般不常用。做参考

  1. /wp/v2/posts?_fields[]=author&_fields[]=id&_fields[]=excerpt&_fields[]=title&_fields[]=link

注意:wp5.3+版本之后支持嵌套查询,对版本要求较高,收益不大,先忽略。

分页相关

  1. key|value|description
  2. page|1|分页
  3. per_page|10|每页结果数
  4. offset |1|跳过的结果数量
  5. order|desc asc|默认倒序排列
  6. orderby | date id includet title slug | 排序字段

分页时候,返回的响应头里,包含两个字段:

  • x-wp-total 总数量
  • x-wp-totalpages 总页数

方便之后做分页

API 介绍

获取文章列表

  1. 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返回文章详情

  1. /wp/v2/posts/<id>

获取栏目

  1. /wp/v2/categories

返回的字段,比较平常。特殊的:

  • parent 父类id

可以通过 post id 找到所在栏目

可以通过 category id 找到子栏目 方便做导航 0 默认大站

  1. /v2/categories?parent=3

搜索

先略。