5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10139|回复: 0
打印 上一主题 下一主题

[RestAPI] wordpress Rest API 获取数据常用接口使用介绍

[复制链接]

670

主题

785

帖子

8238

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8238
跳转到指定楼层
楼主
发表于 2021-5-29 16:00:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
获取分类api链接:/wp-json/wp/v2/categories
获取标签api链接:/wp-json/wp/v2/tags
获取页面api链接:/wp-json/wp/v2/pages
获取评论api链接:/wp-json/wp/v2/comments
获取加密文章的链接:/wp-json/wp/v2/posts/文章id?password=
获取列表加密文章的链接:/wp-json/wp/v2/posts?categories=2&&password=
过滤返回结果想要的字段: /wp/v2/posts?_fields=author,id,excerpt,title,link
获取特色图片

接口默认不包含特色图片

需要在请求的时候设置_embed=true

/wp-json/wp/v2/posts?_embed=true
获取分页:
  1. $.ajax({
  2.   url: url,
  3.   type: 'GET',
  4.   dataType: 'json',
  5.   success: function (data, status, request) {
  6.     totalPage = request.getResponseHeader('x-wp-totalpages');
  7.   }
  8. })
复制代码

分页参数

任何包含多个资源的API响应都支持几个常见的查询参数,以通过响应数据来处理分页:

?page =:指定要返回的结果的页面。
例如/wp/v2/posts?page = 2是帖子结果的第二页
通过检索/wp/v2/ posts,然后/ wp / v2 / posts?page = 2等等,您可以通过API访问每个可用的帖子,一次一页。
?per_page =:指定在一个请求中返回的记录数,指定为1到100之间的整数。
例如, wp / v2 / posts?per_page = 1将只返回集合中的第一个帖子
?offset =:指定开始检索帖子的任意偏移量
例如,/ wp / v2 / posts?offset = 6将使用每页的默认帖子数,但从集合中的第6个帖子开始
?per_page = 5&page = 4相当于?per_page = 5&offset = 15
提示:大型查询可能会损害网站性能,因此per_page的上限为100条记录。如果您希望检索超过100条记录,例如构建所有可用类别的客户端列表,您可以创建多个API请求并将结果合并到应用程序中。

要确定有多少页面的数据可用,API返回两个标题字段与每个分页响应:

X-WP-Total:集合中的记录总数
X-WP-TotalPages:包含所有可用记录的总页数
通过检查这些标题字段,您可以确定API中有多少数据可用。

1、文章
(1)获取最新文章(默认获取到最新的10篇文章)
http://www.website.com/wp-json/wp/v2/posts

http://www.website.com/wp-json/wp/v2/posts?page=1
效果相同,page用于指定页数,WP REST API 默认返回10条数据,用page指定数据获取的游标。如
http://www.website.com/wp-json/wp/v2/posts?page=2
可取回最新的第11条数据到第20条数据,以此类推。

(2)设置获取的每页文章数量及分页
http://www.website.com/wp-json/wp/v2/posts?per_page=5
per_page=5 用于指定返回文章每页的数量,这里指定每页数量为5篇。
?per_page=8&page=1&orderby=date&order=desc:
这部分就是各种参数,per_page是每页记录数,page是当前第几页,orderby是通过什么方式排序,order 是排序方式。不同的路由终点参数也会有所不同。
filter[posts_per_page]与page联合使用:
http://www.website.com/wp-json/wp/v2/posts?filter[posts_per_page]=5&page=2

(3)获取指定分类的文章
http://www.website.com/wp-json/wp/v2/posts?filter[cat]=2
filter[cat]=2 指定分类ID为2 ,返回分类ID为2的文章。
分类ID是每个分类目录在创建时自动生成的ID,在wordpress后台“文章”==》“分类目录”中,把鼠标放在分类名称上面,页面下方会出现一个网址,网址中的参数tag_ID=2就是这个分类名称的分类ID。如果没有出现网址,可以点击分类名称下的“编辑”,然后查看网页地址栏,同样可以得到tag_ID=2。下面的标签ID的获得方法也一样。

(4)获取指定标签的文章

http://www.website.com/wp-json/wp/v2/posts?filter[tag]=library
filter[tag]=library 指定标签名为“library”的文章

(5)获取指定分类和有指定标签的文章

http://www.website.com/wp-json/wp/v2/posts?filter[cat]=2&filter[tag]=library
上面两个结合一起,可以得到更具体精确的文章。

(6)获取指定日期的文章

http://www.website.com/wp-json/wp/v2/posts?filter[year]=2016&filter[monthnum]=03
filter[year]=2016&filter[monthnum]=03 设置指定的日期

(7)获取指定作者的文章

http://www.website.com/wp-json/wp/v2/posts?filter[author_name]=jinyun
filter[author_name]=jinyun设置指定作者名字

(8)按关键词搜索文章

http://www.website.com/wp-json/wp/v2/posts?search='字符串'
(9)获取随机文章

http://www.website.com/wp-json/wp/v2/posts?filter[orderby]=rand
其中orderby还可以为指定的字段排序

(10)获取相关文章

在网站中,在做SEO优化和页面内容布局时,获取相关文章是比较常见的,可以通过以上几个条件组合来达到获取相关文章的效果。

按标签获取相关文章:

http://www.website.com/wp-json/wp/v2/posts?filter[orderby]=rand&filter[tag]=library&filter[posts_per_page]=6
按分类获取相关文章:

http://www.website.com/wp-json/wp/v2/posts?filter[orderby]=rand&filter[cat]=2&filter[posts_per_page]=6
(11)获取指定文章的数据

http://www.website.com/wp-json/wp/v2/posts/189
得到ID为189的文章数据

2、分类和标签

(1)获取所有的分类

http://www.website.com/wp-json/wp/v2/categories
(2)获取指定分类ID的分类信息

http://www.website.com/wp-json/wp/v2/categories/2
(3)获取所有的标签

http://www.website.com/wp-json/wp/v2/tags
(4)获取指定标签ID的标签信息

http://www.website.com/wp-json/wp/v2/tags/3

3、媒体文件
(1)获取所有的媒体信息
http://www.website.com/wp-json/wp/v2/media

(2)获取指定媒体ID的媒体信息
http://www.website.com/wp-json/wp/v2/media/17

4、页面
(1)获取所有的页面信息
http://www.website.com/wp-json/wp/v2/pages

(2)获取指定页面ID的页面信息
http://www.website.com/wp-json/wp/v2/pages/28

5、类型
(1)获取当前wordpress所有的内容类型
http://www.website.com/wp-json/wp/v2/types

一般情况下会返回post,page和attachment三种类型

(2)获取指定类型
http://www.website.com/wp-json/wp/v2/types/post

6、评论
(1)获取所有评论信息
http://www.website.com/wp-json/wp/v2/comments

(2)获取指定评论ID的单条评论信息
http://www.website.com/wp-json/wp/v2/comments/2

7、用户
(1)获取所有的用户信息
http://www.website.com/wp-json/wp/v2/users

(2)获取指定用户ID的用户信息
http://www.website.com/wp-json/wp/v2/users/1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-4-28 18:31 , Processed in 0.109375 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表