如何在 WordPress 中使用 REST API?

内容概览

how to use WordPress rest api

今天要讲 WordPress 的 REST API 是要会写代码的人才会看的明白哟,但是如果你是想学写代码的也可以继续看下去哟。在 WordPress 系统中使用 REST API 可以让你通过写代码(coding)做一个接口来访问可和操作网站上的数据。这对于网站开发者(web developer)来说是非常有用的,因为它允许你从外部应用程序(Software)、移动应用程序(Mobile App)或者其他网站与 WordPress 网站直接进行互动。以下是如何在 WordPress 网站中使用 REST API 的详细指南。

什么是 WordPress REST API?

WordPress REST API 是 WordPress 系统提供的一种让开发者通过 HTTP 请求来访问 WordPress 数据和功能的接口。它能支持多种 HTTP 方法(比如是 GET、POST、PUT、DELETE),并且返回的数据是 JSON 的格式哟。

如何启用 WordPress REST API

WordPress REST API 在 WordPress 系统中是默认启用的,所以我们不需要自己手动去激活它。我们可以通过访问 https://sample.com/wp-json/wp/v2/ 来查看网站的 REST API 是否有在正常运作中。

使用 WordPress REST API 的基本步骤

  1. 了解 REST API 端点
    REST API 通过所谓的 “端点”(Endpoints)来访问不同类型的数据。例如,访问所有文章的端点是 /wp-json/wp/v2/posts;我们也可以通过拿到文章的 ID 来访问特定文章,它的端点是 /wp-json/wp/v2/posts/{id}
  2. 发送 HTTP 请求
    要与 REST API 互动,你需要发送 HTTP 请求。可以使用多种工具来发送请求,例如:
    • 浏览器: 可以直接在浏览器地址栏中输入 REST API 端点(这个方法通常是用于 GET 请求)。
    • 命令行工具: 使用像 Postman 这种工具来发送各种类型的 HTTP 请求。
    • 编程语言: 使用编程语言(如 JavaScript、Python、PHP 等)来构建请求。
  3. 使用 WordPress 内建的 API 客户端(在主题或插件中)
    如果你在 WordPress 主题插件中开发功能,也是可以使用 WordPress 自带的 wp_remote_get()wp_remote_post() 函数来发送请求哟。

实例:获取 WordPress 文章列表

假设你想获取网站上所有的文章的详细,你可以向 /wp-json/wp/v2/posts 发送一个 GET 请求:

curl https://sample.com/wp-json/wp/v2/posts

这个请求将返回所有文章的 JSON 数据给你哟。

实例:创建新文章

要创建新文章,你需要发送一个 POST 请求到 /wp-json/wp/v2/posts,并且提供必要的数据(如文章的标题也内容等)。

注意:为了进行编写文章操作,你是需要进行身份验证的哦(通常使用 Basic Auth 或者 OAuth)。

下面是一个使用 curl 指令的例子:

curl -X POST https://yourwebsite.com/wp-json/wp/v2/posts \
  -u username:password \
  -H "Content-Type: application/json" \
  -d '{
    "title": "新文章标题",
    "content": "这是文章的内容。",
    "status": "publish"
  }'

在这个例子中,-u username:password 是用于身份验证的用户名和密码(建议使用应用程序密码而不是普通用户密码),-H 用于设置请求的类型,-d 用于发送数据的内容。

身份验证

对于某些 REST API 操作(例如创建、更新或删除数据),是一定需要用户身份验证的。常见的身份验证方式有:

  • Cookie 验证: 可以在网站已经登录的情况下使用浏览器的 Cookie 自动进行验证(仅限浏览器环境)。
  • Basic Authentication: 使用用户名和密码进行基本身份验证。需要安装并启用相应的插件(如 Application Passwords)。
  • OAuth: 使用 OAuth 认证是更安全和我们推荐使用的方式,尤其是在第三方应用中访问 WordPress 网站时。你是必需安装 OAuth 插件才能进行配置的。

使用 JavaScript 与 WordPress REST API 互动

现在越来越多人会使用 Javascript 来开发网站了,现在就来看看 Javascript 可以如何和 WordPress REST API 互动吧! WordPress 系统会自动默认加载了 wp-api.js,它是一个非常方便的 JavaScript 库,允许你在前端直接使用 REST API。例如以下代码可以用来获取文章列表:

codewp.apiFetch({ path: '/wp/v2/posts' }).then(posts => {
  console.log(posts);
});

以下是我们常会用到的 REST API 端点

  • 获取所有文章:/wp-json/wp/v2/posts
  • 获取特定文章:/wp-json/wp/v2/posts/{id}
  • 获取所有页面:/wp-json/wp/v2/pages
  • 获取所有分类:/wp-json/wp/v2/categories
  • 获取所有标签:/wp-json/wp/v2/tags

扩展 WordPress REST API

WordPress REST API 可以通过 WordPress 系统代码里所谓的钩子 (hook) 和自定义端点来进行功能扩展。如果你有自定义数据类型或想要增加新的功能,可以使用 register_rest_route() 函数来注册一个自定义端点。

add_action('rest_api_init', function() {
  register_rest_route('myplugin/v1', '/custom-endpoint/', array(
    'methods' => 'GET',
    'callback' => 'my_custom_endpoint_function',
  ));
});

function my_custom_endpoint_function() {
  return new WP_REST_Response('Hello, this is my custom endpoint!', 200);
}

总结

WordPress REST API 是一个非常强大的开发工具,能让你通过编写代码来开通接口去访问和远程操作 WordPress 网站上的数据。无论你是在开发一些移动应用、构建单页应用,还是创建自定义的后端功能等等系统,REST API 都能提供到一个灵活而高效的方式来与 WordPress 网站进行互动。掌握 REST API 的使用方式,也可以极大地拓展你的 WordPress 网站开发能力哦。

订阅我们的电子报
与你一起学习新知识
猜你喜欢

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

对我们的文章感兴趣?

喜欢我们的文章?现在就订阅我们的电子报吧!