WordPress REST API基础知识点介绍

自学咖网努力为各位打造免费分享知识与教程网站

REST API正在改变。你可能没有注意到,因为他们中的许多人都在幕后,但REST API的意义对WordPress的未来有着巨大的影响,无论是代码基础还是用法。

如果你没有用过WordPress REST API,你可能想知道它是什么。所以,我们先来看看什么是REST API。

在本文中,我们解释一些WordPress REST API的基础知识。我们将研究它的功能、工作原理以及它给平台带来的变化。最后,我们将讨论一些你可以用它做的事情。

当REST API最终被添加到WordPress的核心时,漫长的旅程就结束了。许多人认为这一变化是WordPress平台历史上最大的进步。然而,如果您不熟悉REST API,您可能会对它所受到的所有关注感到困惑。

总之,WordPress REST API的加入让WordPress成为了一个全功能的应用框架。这显著提高了它的“可伸缩性”,或者可以通过新的特性和功能进行扩展。此外,它扩展了平台与其他站点和应用程序通信的潜力。

什么是WordPress REST API?

理解WordPress REST API

如何访问WordPress REST API

WordPress REST API命令概述

何时不使用WordPress REST API

使用WordPress REST API的实际应用

什么是WordPress REST API?

在我们深入研究WordPress REST API之前,了解我们的术语是很重要的。这是一个我们需要用到很多首字母缩略词的主题,所以我们先把它们说清楚。

什么是应用编程接口(API)?

首先,你需要知道什么是应用编程接口(API)。最简单地说,API是一个系统允许其他系统连接到它的数据的一种方式。例如,当一个网站将脸书的“喜欢”按钮添加到页面上时,它会通过连接到脸书的API来实现这一点。这允许网页使用API来接收数据(如按钮代码)和发送数据(如请求)。

应用编程接口或API被定义为:

“客户端和服务器之间的接口或通信协议旨在简化客户端软件的构造。”

如果不熟悉API,可能帮助不大。简单地说,API是一组允许一个系统与另一个系统交互(或“接口”)的代码。如果你曾经将谷歌地图添加到你的WordPress站点,那么你已经使用了谷歌地图API,它允许你的WordPress站点与谷歌地图交互。

这些系统不需要完全分离。WordPress已经有多个插件、设置、短代码等API。插件主题开发者可以使用这些来与WordPress core交互,并使事情发生(例如创建短代码和为WordPress管理员添加设置屏幕)。

与REST API的区别在于,它允许WordPress安装本身之外的系统与WordPress交互,这就是REST的用武之地。

什么是表象状态转移(REST)?

那么,REST API到底是什么?表述性状态转移(REST)是一个特定于Web服务的API。它包含一组标准化的指令和规则,使得所有“RESTful”服务之间的相互连接更加容易。

简而言之,REST API使您能够向外部系统发出请求。这方面的一个例子是Twitter。您可以使用它的API向特定用户请求一定数量的tweets。然后,API将根据您的请求返回tweets,您可以使用HTML和CSS将tweets嵌入您的网站。

这些请求使用JavaScript对象符号(JSON)来执行。这是一种为发送、接收和存储数据而设计的语言。我们将在本文的后面介绍JSON,但是我们建议您先花些时间熟悉这种语言。这将帮助你准备好使用WordPress REST API,并理解我们将要讨论的一些概念。

WordPress REST API是一个接口,开发者可以使用它从WordPress安装本身之外访问WordPress。您可以使用JavaScript访问它,这意味着它可以用于创建交互式网站和应用程序。

REST具象状态转移,API代表应用程序编程接口。让我们来看看每一个的含义。

表述性状态转移(REST)提供了一个标准,Web系统可以用它来进行交互。没有休息,两个系统将无法相互理解和来回发送数据。

要使应用程序RESTful,它必须满足五个原则:

统一界面。用来访问系统中资源的URL必须是统一一致的,并且可以通过常用的方法(比如GET)访问(后面会有更多介绍)。

客户端服务器。客户端应用程序和服务器应用程序必须是分离的,因此它们可以彼此独立地开发。如果服务器端技术(即WordPress)发生变化,服务器端应用程序(如应用程序)必须仍然能够通过相同的简单方法访问它。

无国籍。当使用API发出新请求时,服务器不会改变状态。它不存储发出的请求。

可缓存。所有资源都必须可缓存,以提高速度并符合Web标准。缓存可以在服务器端或客户端实现。

等级制度。RESTful系统允许您使用多个层来访问它,如果需要,可以将数据存储在中间服务器中。服务器无法确定终端客户端是否与其直接连接。

所有这些约束都与网页和应用程序相关,并控制应用程序如何与API交互。

这对WordPress意味着什么?

将REST和API放在一起,意味着WordPress REST API是一组代码,旨在使其他系统能够与WordPress进行交互,它的构建方式是为了确保这些系统能够相互理解。

这意味着,举例来说,第三方网站或移动应用程序可以访问你的WordPress数据库,从中获取数据并向其中添加数据。

然而,这有许多意义和用途。

理解WordPress REST API

自学咖网努力为各位打造免费分享知识与教程网站

WordPress REST API的功能和我们已经提到的例子大致相同。基本上,WordPress REST API允许你从任何JSON兼容的框架中访问WordPress的所有功能。

类似于Twitter的API让你能够检索和发送推文,WordPress REST API可以用来管理文章、用户、类别等。从外部平台。这使你能够以许多前所未有的方式使用WordPress。

WordPress REST API的背景

REST API早在2013年就公布了。它最初是一个插件,目标是通过4.1版将其整合到WordPress核心中。经常发生的情况是,延迟会把发布推迟到三年后,随着WordPress 4.7的发布,终于落实到核心。

WordPress REST API于2016年12月作为4.7版本核心的一部分发布,但在此之前它是作为插件存在的。

对于许多人来说,这是一个漫长但值得的等待,他们将WordPress REST API视为平台向前迈出的重要一步。您可能想知道为什么这个添加如此重要,尤其是因为许多用户可能不会注意到太多的差异。事实证明,由于各种原因,包含REST API是对WordPress的一个根本性改变。

例如,通过实现REST API,WordPress从一个简单的创建网站的平台迈出了一步。相反,它现在已经成为一个成熟的应用框架。这意味着开发者可以使用WordPress站点为移动设备和网络创建应用程序,或者作为信息库。

这种转变也让WordPress摆脱了对PHP的依赖。通过使WordPress兼容任何JSON兼容的语言,REST API极大地扩展了开发者的可能性,使他们能够使用几乎任何框架的WordPress函数。

它旨在支持一系列建立在WordPress基础上的应用程序,并将WordPress从一个内容管理系统转变为一个应用程序平台。

它在WordPress被广泛使用,其基于JavaScript的界面使用REST API与WordPress数据库进行交互。古腾堡编辑界面也用,2019年成为核心的一部分。

REST API扩大了WordPress可以使用的应用范围。虽然内容管理系统擅长运行复杂的网站,但应用程序平台也可以用于支持基于web的单页应用程序或SPA(如果您曾经使用过Google Docs,那么您已经使用过其中的一个)。

在这些情况下,当用户执行操作时,内容将被刷新,而不是加载新的页面。因为它使用JavaScript(一种客户端语言)而不是PHP(一种服务器语言),所以它可以在用户的浏览器中运行,而不必不断地向服务器发送请求。

对WordPress用户和开发者的影响

如果你是使用WordPress的用户和/或开发者,那么REST API有很多含义。

对用户而言,这些包括:

界面的变化,包括古腾堡编辑器。

WordPress移动应用程序的变化和改进。

随着时间的推移,自托管的WordPress管理界面看起来更像WordPress界面。

对于开发者来说,还有更广泛的意义和可能性:

能够使用REST API创建SPA,从WordPress提取数据,但是看起来和WordPress很不一样。

将WordPress与其他前端技术和系统集成的能力。

如果你是不写PHP的前端开发人员,可以使用WordPress进行开发。

对于PHP开发人员来说,扩展您的技能以包括JavaScript越来越有必要。

具体的改变,比如需要在页面和后期编辑屏幕中构建古腾堡块而不是元框。

随着时间的推移,WordPress REST API将意味着更多的WordPress核心将用JavaScript而不是PHP编写。如果你是WordPress开发者,这意味着你需要学习JavaScript。

REST API JSON如何协同工作?

最后,REST API在可用于平台的接口方面提供了更多的灵活性。它使得管理界面完全可选,因为你现在可以完全通过JSON命令与你的WordPress站点交互。让我们看看如何将JSON和REST API结合起来实现这一点。

WordPress REST API是为了应对网站和应用开发方式的变化,以及更广泛地开放WordPress的需求而开发的。

到目前为止,您应该对WordPress REST API的理论方面有所了解,所以让我们来看看这项技术更实际的方面。官方手册描述了如何使用REST API,如下:

WordPress REST API为WordPress数据类型提供API端点,允许开发人员通过发送和接收JSON(JavaScript对象符号)对象来与站点进行远程交互

我们需要重点关注的第一个词是“端点”。将端点视为使用JSON请求数据或函数的最简单方式。默认情况下,WordPress提供了大量可以使用的标准端点,但是开发者也可以创建自定义端点。

要到达端点,您必须使用普通URL形式的“route”。现在你甚至可以自己尝试。去你自己的WordPress站点,在它的URL末尾添加/wp-json/wp/v2。如果你的网站是http://example.com,你将进入http://example.com/wp-json/wp/v2.

当您加载这个路由时,您将到达端点,在这种情况下,它以(混乱的)JSON格式返回站点的所有内容和元数据。通过使用不同的路由,您可以访问不同的端点以获取特定类型的信息并执行各种任务。

您将在REST API中使用三个主要的JSON请求,所以现在让我们快速浏览一下。它们是:

GET——这种类型的请求用于从API中检索和列出数据。例如,您将使用GET request返回您的网站上的用户列表,或者编辑特定时间范围内的博客帖子。

POST——这个请求用于向API发送数据。它使你能够向WordPress推送新的信息,比如添加新的用户和文章或者更新现有的数据。

DELETE——顾名思义,这个请求用于删除数据。这使您能够删除文章、页面、用户等。

有时,您可以对同一个端点使用GET和POST来获得不同的结果。例如,我们来看看端点/me/settings/。如果您希望在此端点上执行GET请求,您将收到当前用户设置的列表。但是,通过在同一个端点上使用POST请求,您将能够更新设置。

如何访问WordPress REST API

你如何访问WordPress REST API?

要访问WP-REST API,您需要通过命令行访问您的站点。对于WordPress,这叫做WP-CLI。您不会通过管理屏幕或直接访问您网站上的代码来执行这些操作。

让我们看看你是如何开始的。

通过WP-CLI访问WP-REST

WP-CLI是WordPress命令行界面。它允许你通过电脑上的命令行界面(CLI)访问和使用WordPress。

要访问CLI,请在Mac或Linux中打开终端,或者在Windows中打开命令提示符。

自学咖网努力为各位打造免费分享知识与教程网站Mac上的终端要访问远程站点,需要SSH到你的服务器才能通过WP-CLI访问(不能通过SSH连接?了解如何修复SSH“连接被拒绝”错误)。

要访问本地站点,您只需要从命令行使用正确的目录结构。在实际站点上尝试REST API之前,最好在本地测试站点上尝试REST API。

您需要专门访问网站的REST API,如下所示:

http://yoursite.com/wp-json/wp/v2

然后,您可以在此之后添加元素来访问特定类型的数据,我们将在后面更详细地介绍这一点。这些元素称为端点。

确认

访问网站后,您可能需要进行身份验证。有些端点是公共的,不需要身份验证,而其他端点则需要。

在这里,您不是作为站点管理员登录的:REST API的处理略有不同。

为了能够通过WP-CLI认证您的站点,您需要安装一个认证插件。对于开发和安装,基本的Auth插件可以完成这项工作,并且易于使用。

但是,对于实时站点,您应该使用更强的身份验证形式,例如JWT身份验证插件,它使用JSON Web Token,更加安全。

然后,您可以使用命令行来访问数据并包括身份验证。

下面的例子curl用于测试与WordPress的连接。它将输出一个草稿列表。

curl -X GET –user username:password -i http://yoursite.com/wp-json/wp/v2/posts?status=draft

草稿文章不是公共信息,所以你需要认证才能访问它们。但是,如果要查找公共数据,则不需要认证。因此,要检索已发布文章的列表,可以使用:

curl -X GET http://yoursite.com/wp-json/wp/v2/posts

这将得到所有发表的文章,因为这些文章是公开的。

WordPress REST API命令概述

现在我们将把所有这些理论付诸实践,并向您展示一些非常基本的例子,说明您可以用REST API做些什么。这只是试图帮助你习惯使用REST API来处理对WordPress的请求。关于更多的例子,我们建议您查看官方参考库和REST API资源。

以下技术将要求您使用命令行来处理JSON请求。这使你能够通过使用基于文本的界面和发送简单的命令来与你的WordPress站点进行交互。如果您没有任何使用命令行的经验,我们建议您先花些时间学习基础知识。您可能还想使用SSH来创建到您的站点的连接。

最后,当你准备好了,让我们来看一些关于如何使用WordPress REST API的例子!

一旦您访问了您的站点,并且知道如何使用身份验证(以及您是否需要它),您将需要使用一系列命令中的一个来与您的站点交互。

您需要使用的命令有:

获取检索资源,如文章或其他数据。

向帖子服务器添加资源,如文章、附件或其他资源。

PUT可用于编辑或更新服务器上的现有资源。

DELETE从服务器中删除资源。小心使用!

让我们依次看一下它们。

得到

GET命令可能是最常用的:它检索数据。以下示例(在成功访问您的网站后使用)将获取您的网站中所有已发布页面的列表:

GET http://yoursite.com/wp-json/wp/v2/posts/?status=published

请注意,我没有在上面的行中包含您的站点的完整路径,因为您已经使用WP-CLI访问了该路径。

检索到这些数据后,您可以使用它来通知您的下一步。您可以删除其中一篇文章,编辑或更新它。您可以简单地将帖子输出到您的web应用程序。

假设你想得到最新的文章。你可以用这个:

GET http://yoursite.com/wp-json/wp/v2/posts/?per_page=1

处理文章时,可以使用许多参数。更多信息,请参阅WordPress REST API手册。

邮政

POST用于向您的站点添加新数据或资源。

例如,如果您想创建一篇文章,您可以从下面的POST命令开始:

POST http://yoursite.com/wp-json/wp/v2/posts/

这将创建一个新的空条款草案。

然后,您可以通过使用PUT命令进行编辑来更新文章。

使用POST命令,您还可以添加除文章之外的其他资源,包括附件和其他文章类型。

要向网站添加网页,可以使用以下方法:

POST http://yoursite.com/wp-json/wp/v2/posts/pages

这将创建一个空页面,与创建空文章的方式相同。

PUT命令允许您编辑现有资源,包括文章。

假设你的网站上有很多文章草稿。您想要检查它们并更新其中一个以使其发布。

你可以先得到一份所有文章草稿的清单:

POST http://yoursite.com/wp-json/wp/v2/posts/?status=”draft”

你将得到一份所有现行条款草案的清单。您可以使用其中一个的ID来更改其状态:

PUT http://yoursite.com/wp-json/wp/v2/posts/567

这将访问文章并允许您编辑它。然后,您可以使用status参数来更改其状态:

{“status” = “publish”}

或者您可以向文章中添加内容并发布它:

{“status” = “publish””content” = “content here”}

服务器将返回200-OK状态,告诉您PUT请求已经成功编辑了文章。

删除

DELETE命令执行您所期望的:它删除一个资源。默认情况下,如果你用它来删除文章,它会把它们放到垃圾桶里,而不是永久删除。

因此,如果您想将刚刚创建的文章移动到垃圾桶,您可以使用以下命令:

DELETE http://yoursite.com/wp-json/wp/v2/posts/567

但是,如果要绕过垃圾桶并永久删除它,可以使用以下强制参数:

DELETE http://yoursite.com/wp-json/wp/v2/posts/567?force=true

这将永久删除文章,并且无法撤消,因此应谨慎使用。

一些例子

1.从网站返回文章

虽然你显然需要适当的授权来编辑网站,但是你可以从几乎任何WordPress网站上检索一些信息。这是因为REST API在所有WordPress安装中都是一致的。

正如我们所讨论的,API存在的主要原因之一是让外部应用程序能够访问您的一些数据。在这个例子中,我们可以从官方的WordPress新闻博客中检索一篇文章:

curl https://wordpress.org/news/wp-json/wp/v2/posts/1

ID被设置为1,这意味着这个请求将检索博客上的第一篇文章。可能因为JSON可读性不是很好,所以很难看出来,但是在代码中,你可以找到文章的所有内容和元数据。

自学咖网努力为各位打造免费分享知识与教程网站

然后,您可以在您的应用程序中使用这些信息,例如,使用您自己的自定义样式来显示它。

如果你想返回到你博客中的每一篇文章,你所要做的就是删除末尾的ID。但是,您更可能想要返回选定数量的帖子。以下请求将返回最新的三篇文章:

curl https://wordpress.org/news/wp-json/wp/v2/posts/?per_page=3

你可以在其他网站甚至自己的博客上自己尝试一下。

2.更新文章

现在,让我们尝试使用REST API对WordPress进行一些修改。为此,您需要登录到您想要管理的站点。例如,如果您使用SSH,您需要登录到您的服务器。

在这个例子中,我们将更新一个现有的文章。首先,让我们使用一个请求来更新ID为1的文章的标题:

curl -X POST http://example.com/wp-json/wp/v2/posts/1 -d ‘{“title”:”A Brand New Title”}’

这是不言自明的。title参数表示您正在更新文章的标题,后面是包含替换内容的文本字符串。

还有许多其他参数可以用来进行更改。例如,您可以使用列表为文章分配类别、发布文章或完全更改其内容。

3.删除用户

最后,让我们看看如何使用REST API删除数据。在本例中,我们将从站点中删除用户。当然,您需要登录并授权管理用户才能使用该功能。

然后,您可以通过以下请求删除ID为101的用户:

curl -X DELETE http://example.com/wp-json/wp/v2/users/101

这将从网站中删除指定的用户。您可以使用附加参数根据用户的ID将用户的文章重新分发给另一个用户,或者强制永久删除,而不是将用户添加到垃圾桶。

通过这些例子,您可以开始理解REST API如何使您能够管理站点上的内容并连接到其他站点。如果你想了解更多,我们建议你深入学习REST API手册,查看关于学习JSON的课程。

何时不使用WordPress REST API

WordPress REST API并不总是开发网站或应用程序的正确方法。在使用它进行开发之前,您应该注意以下事项:

和睦相处

如果您的应用程序将在不运行JavaScript的设备上使用,或者由可能关闭它的用户使用,那么如果您正在使用REST API,它将不会运行。

用PHP编码的WordPress站点会输出HTML,所以不会遇到这个问题。不使用JavaScript的设备越来越少,但是如果你专门为这些设备开发REST API就不行了。

类似地,如果您的用户可能关闭JavaScript,那么使用REST API将会导致问题。出于可访问性或安全性的原因,一些用户会关闭浏览器中的JavaScript。

无障碍

使用JavaScript开发的站点或应用程序并不总是像HTML输出那样易于访问。

这主要是因为JavaScript用于传递动态内容的方式可能无法很好地与屏幕阅读器一起工作,并且可能会给有视觉障碍或光敏性癫痫症的人带来问题。

使用REST API访问你的WordPress站点,并以可访问的形式输出数据,意味着你可以克服这些问题,但是在开发时检查站点的可访问性是值得的。

搜索引擎优化

频繁刷新的单页面应用程序有时会导致SEO问题。这是因为当页面第一次输出时,未发送的内容可能不会被搜索引擎编入索引。

谷歌和其他搜索引擎正在赶上这样一个事实,即许多网站现在都是由SPA驱动的,并且正在对它们进行适当的索引。然而,对您使用REST API开发的任何站点进行一次彻底的SEO审计确实是值得的。

如何禁用WordPress REST API

如果您不希望应用程序能够使用REST API从您的站点访问数据,您可以禁用它。记住,任何人都可以访问公共数据,不仅仅是你。

为此,您可以安装禁用WP REST API插件。这将对没有登录到您的站点的任何人禁用REST API。

自学咖网努力为各位打造免费分享知识与教程网站

禁用WP REST API插件

或者,您可以向主题的函数文件中添加一些代码,或者编写自己的插件。最好写一个插件,因为这不是一个特定主题的功能。

在您的插件中,只添加两行:

add_filter( ‘json_enabled’, ‘__return_false’ );add_filter( ‘json_jsonp_enabled’, ‘__return_false’ );

这将完全禁用您站点的REST API。它可能会在您的管理屏幕上产生连锁反应,所以请确保添加后一切正常。

使用WordPress REST API的实际应用

REST API为WordPress的未来提供了一些令人兴奋的可能性。下面是一些使用WordPress REST API创建SPA或将WordPress链接到其他站点和技术的应用程序和站点的例子。

WordPress.com

自学咖网努力为各位打造免费分享知识与教程网站

WordPress.com接口

WordPress.com管理屏幕完全是使用REST API构建的,为用户提供管理其站点SPA的交互。

这使得界面和服务器之间的动态通信成为可能,并导致用户友好的界面,WordPress.org可以及时模仿。

块编辑器(古腾堡)

自学咖网努力为各位打造免费分享知识与教程网站

古腾堡编辑

同样在WordPress管理界面,但这次也是在自托管的WordPress中,Gutenberg Block Editor使用REST API与你的数据库通信并创建块。

要在Gutenberg editor中使用文章类型,它们必须启用REST API。这意味着,如果您想要注册一个定制的文章类型并使用Gutenberg,您需要添加下面一行来启用该文章类型的块编辑器:

“show_in_rest” = true;

活动浓缩咖啡

自学咖网努力为各位打造免费分享知识与教程网站

活动浓缩咖啡

Event Espresso是一个WordPress插件,允许用户组织和推广活动。它利用REST API,这样用户可以从WordPress外部访问数据。这意味着你可以建立一个移动应用程序或SPA来管理你的活动。

UsTwo

自学咖网努力为各位打造免费分享知识与教程网站

UsTwo

UsTwo是一家数字机构,其网站是使用REST API作为单页面应用程序构建的。这结合了用React构建的前端和由WordPress驱动的后端。

他们单个页面的内容是模块化的,其结构不同于标准的WordPress页面。为了实现这一点,他们使用了一个自定义页面生成器插件,允许他们的团队向网站添加模块化内容。

今日美国

自学咖网努力为各位打造免费分享知识与教程网站

今日美国

《今日美国》的网站是通过将WordPress REST API与网站中现有的系统和模块整合而重建的。

REST API允许使用JSON将网站内容推送到其他渠道,如Facebook即时文章和苹果新闻。他们还为自己的体育版块编写了一个用JavaScript构建的在线社交游戏。

总结

WordPress REST API是一个平台,这是一个很大的进步,远离了它的根源和未来。开发者从一开始就很兴奋,但是如果一开始对REST API不熟悉,可能会对原理感到困惑。

WordPress REST API为WordPress用户和开发者带来了一些激动人心的挑战,但也带来了有趣的机遇。这是WordPress的未来,它很可能会彻底改变我们使用WordPress进行开发的方式,以及我们使用它的方式。

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » WordPress REST API基础知识点介绍