WordPress REST API入门指南:从零开始掌握数据接口调用
什么是WordPress REST API?
WordPress已经从一个简单的博客程序发展成为一个功能强大的内容管理系统(CMS)。它拥有开源特性、活跃的社区支持以及丰富的接口功能,使其应用范围越来越广泛。
WordPress REST API是一个为WordPress提供标准化RESTful接口的插件。随着RESTful架构的流行和各种前端框架的出现,这个API让WordPress不再局限于网页端,而是可以作为后端系统,通过不同应用形式在各种设备上运行。
以下是官方的一段介绍:
这个插件提供了一个易于使用的REST API,可通过HTTP访问。以简单的JSON格式获取您网站的数据,包括用户、文章、分类等。检索或更新数据就像发送HTTP请求一样简单。
目前最新的是第二个版本(V2),而WordPress 4.4及以上版本已经内置了部分功能。未来版本可能会完全集成这个API。
如何安装和使用WordPress REST API
由于目前WordPress REST API以插件形式存在,安装非常简单:
- 在WordPress后台的插件页面搜索“WordPress REST API”
- 选择安装“WordPress REST API (Version 2)”
- 安装完成后激活插件
- 在“设置”>“固定链接”中,将固定链接设置为“文章名”
完成这些步骤后,您的WordPress网站就已经拥有了可直接使用的API接口。默认提供的接口包括文章、页面、用户、媒体文件、文章类型、评论、分类和标签等。
例如,要获取网站最新的文章,可以在浏览器中输入:
http://www.website.com/wp-json/wp/v2/posts
这会返回最新的10篇文章。要获取特定文章(按文章ID),可以输入:
http://www.website.com/wp-json/wp/v2/posts/1
这会返回ID为1的文章的详细数据。
网址中的“wp-json/wp/v2”是API的命名空间和路由设置。作为初学者,您不需要深入了解这些概念,只需学会使用内置的API接口即可。
实用工具推荐:Postman
在深入了解API接口之前,我们先介绍一个非常有用的工具——Postman。
Postman是一款功能强大的网页调试和HTTP请求发送工具。它作为Chrome浏览器的插件和应用两种形式存在,都可以免费下载使用。QQ浏览器也有Postman插件。在进行RESTful接口相关的开发和测试时,Postman能为您提供极大的便利,强烈推荐使用。
常用数据获取接口详解
这部分介绍WordPress REST API常用的数据获取(GET)接口。提交数据涉及较复杂的认证,本文限于篇幅,将在后续文章中专门介绍。
文章相关接口
1. 获取最新文章(默认10篇)
http://www.website.com/wp-json/wp/v2/posts
或
http://www.website.com/wp-json/wp/v2/posts?page=1
“page”参数用于指定页码,默认每页返回10条数据。
2. 设置每页文章数量和分页
http://www.website.com/wp-json/wp/v2/posts?filter[posts_per_page]=5
“filter[posts_per_page]=5”指定每页返回5篇文章。
3. 获取指定分类的文章
http://www.website.com/wp-json/wp/v2/posts?filter[cat]=2
“filter[cat]=2”指定返回分类ID为2的文章。
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
7. 获取指定作者的文章
http://www.website.com/wp-json/wp/v2/posts?filter[author_name]=jinyun
8. 关键词搜索文章
http://www.website.com/wp-json/wp/v2/posts?filter[s]=关键词
9. 获取随机文章
http://www.website.com/wp-json/wp/v2/posts?filter[orderby]=rand
10. 获取相关文章
http://www.website.com/wp-json/wp/v2/posts?filter[orderby]=rand&filter[tag]=library&filter[posts_per_page]=6
11. 获取指定文章数据
http://www.website.com/wp-json/wp/v2/posts/189
分类和标签接口
1. 获取所有分类
http://www.website.com/wp-json/wp/v2/categories
2. 获取指定分类信息
http://www.website.com/wp-json/wp/v2/categories/2
3. 获取所有标签
http://www.website.com/wp-json/wp/v2/tags
4. 获取指定标签信息
http://www.website.com/wp-json/wp/v2/tags/3
媒体文件接口
1. 获取所有媒体信息
http://www.website.com/wp-json/wp/v2/media
2. 获取指定媒体信息
http://www.website.com/wp-json/wp/v2/media/17
页面接口
1. 获取所有页面信息
http://www.website.com/wp-json/wp/v2/pages
2. 获取指定页面信息
http://www.website.com/wp-json/wp/v2/pages/289
内容类型接口
1. 获取所有内容类型
http://www.website.com/wp-json/wp/v2/types
通常返回post、page和attachment三种类型。
2. 获取指定类型
http://www.website.com/wp-json/wp/v2/types/post
评论接口
1. 获取所有评论信息
http://www.website.com/wp-json/wp/v2/comments
2. 获取指定评论信息
http://www.website.com/wp-json/wp/v2/comments/2
用户接口
1. 获取所有用户信息
http://www.website.com/wp-json/wp/v2/users
2. 获取指定用户信息
http://www.website.com/wp-json/wp/v2/users/1
理解返回的数据结构
当我们使用接口获取数据时,了解返回的数据结构非常重要。
例如,使用以下接口获取文章列表:
http://www.website.com/wp-json/wp/v2/posts
返回的是一个数组,我们称之为“集合型”API。类似的还有users、comments、categories等接口。
当我们在接口中添加具体ID时:
http://www.website.com/wp-json/wp/v2/posts/189
返回的是一个JSON对象,包含该文章的所有信息。其他接口如users、comments等也遵循同样的模式。“集合型”API返回的是这些单个JSON对象的集合。
仔细查看返回的JSON数据,您会发现特色图像、分类和标签都是以ID形式给出的。如果需要获取这些详细信息,还需要使用前面介绍的接口单独查询。这可能会增加工作量和连接数,在实际开发中可能影响性能。
此外,返回的数据可能包含很多信息,但在实际展示给用户时,通常只需要ID、标题、摘要、内容、分类、标签、图片、作者和链接地址等关键信息。过多的数据可能导致传输延迟。
因此,虽然WordPress REST API提供了一套标准接口,但在实际使用中,通常需要根据具体需求进行个性化定制,包括自定义字段、修改返回结果和增加自定义路由等。这些高级内容将在后续文章中介绍。
学习资源
- 官方文档:http://v2.wp-api.org/
- WordPress REST API插件:https://wordpress.org/plugins/rest-api/
- GitHub仓库:https://github.com/WP-API/WP-API
如需进一步学习WordPress和WooCommerce开发技巧,请访问woocommercedev获取更多教程和资源。