学习WordPress:WordPress REST API入门指南
2023-08-24
浏览次数 : 79
欢迎大家来到学习WordPress!在本教程中,您将学习有关WordPress REST API的知识以及如何在您的项目中使用它。我们将介绍关键的REST API概念,如路由(Routes)和全局参数,并演示如何使用它来替代类似Admin Ajax的功能。
WordPress REST API为应用程序提供了与WordPress站点进行交互的接口。这些应用程序可以是WordPress插件、主题或需要访问WordPress站点数据的自定义应用程序。其中一个最著名的REST API实现是区块编辑器,它是一个JavaScript应用程序,通过REST API与WordPress数据进行交互。
API代表应用程序编程接口,它是一组函数,允许应用程序彼此交互。WordPress有许多不同的API,其中之一就是REST API。REST代表表征状态转移(Representational State Transfer),它是一种描述在物理上分离的组件之间提供统一接口的软件架构风格。
在核心部分,WordPress REST API提供了REST端点或URL,这些端点表示文章、页面、分类法和其他内置的WordPress数据类型。您的代码可以通过这些端点发送和接收JavaScript对象表示法(JSON)数据,以查询、修改和创建站点上的内容。
让我们深入了解这些概念,以更好地理解WordPress REST API的上下文。”Route”是可以映射到不同HTTP方法的URI。HTTP方法是在与Web上的任何内容进行交互时所进行的请求类型。例如,当您在Web上浏览到URL时,会进行一个GET请求以请求数据。当您提交表单时,会进行一个POST请求,将提交的表单数据传递给Web服务器。
将单个HTTP方法映射到一个路由被称为”端点”。以下是一些根和端点的示例:如果您在浏览器中打开您本地安装的WordPress的wp-json URL,您将会进行一个GET请求到该URI。返回的数据是一个JSON响应,显示可用的路由以及每个路由内可用的端点。默认情况下,浏览器会以原始数据格式显示JSON数据。为了将其转换为更可读的格式,您可以使用浏览器扩展程序,比如Chrome中的JSON格式化程序、Firefox中的基本JSON格式化程序,或Safari中的JSON Peep。
在这个例子中,wp-json是一个根,当该路由接收到GET请求时,它由端点处理,该端点显示数据。这个数据被称为WordPress REST API的索引。
相比之下,wp-json/wp/v2/post根提供了一个GET端点,该端点返回帖子列表,还提供了一个POST端点。如果您是一个经过身份验证的用户,并且通过POST请求将正确的数据提交给此路由,请求将由端点处理,从而创建新的帖子。
通常情况下,同一路由将针对不同的HTTP方法具有不同的端点,包括用于获取数据的GET,用于创建数据的POST以及用于删除数据的DELETE。
WordPress REST API包括许多全局参数,用于控制API如何处理请求和响应。这些参数在实际资源之上的层次上操作,并在所有资源上都可用。全局参数在REST API路由上以查询字符串参数的形式实现。查询字符串以问号开头,后面跟着一系列由与号分隔的键值对。
例如,看一下您之前查看过的wp/v2/posts路由。正如您可以看到的,默认情况下会返回帖子的所有可用字段。然而,如果您通过添加fields全局参数来更新该路由,例如?_fields=author,ID,excerpt,title,link
,您将只会看到您在响应中请求返回的字段。
WordPress REST API还支持结果的分页和排序。分页由per_page、page和offset参数处理。例如,您可以通过将per_page参数添加到路由中来每页只返回五篇帖子。此外,您还可以使用order和orderby参数来排序结果。例如,您可以将post路由更新为按照帖子标题降序排列。
默认情况下,WordPress REST API使用与登录WordPress仪表板时相同的基于Cookie的身份验证方法。因此,对于需要有效用户的REST API端点,如果验证Cookie存在,请求会得到身份验证。然而,您也可以使用应用程序密码、JSON Web Tokens和OAuth 1.0来进行身份验证。
使用WordPress插件中REST API的最大优势之一是,您可以使用更少的代码来替代Admin Ajax请求,从而使请求更加安全。这一点通过一个简化的示例来展示,示例中的插件向WordPress仪表板添加了一个菜单页面,该页面包含一个按钮和一个文本区域。当单击按钮时,将进行Ajax请求,以获取最新的帖子,并将其标题显示在文本区域中。通过使用REST API和JavaScript客户端,您可以简化这些功能,从而使您的代码更加简洁且安全。
这篇教程只是探讨了WordPress REST API的表面。要了解更多关于它的工作原理、如何使用它以及如何扩展它的内容,请查阅WordPress.org上的开发者资源中的wp-rest-api手册文档。