今天要讲 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 的基本步骤
- 了解 REST API 端点
REST API 通过所谓的 “端点”(Endpoints)来访问不同类型的数据。例如,访问所有文章的端点是/wp-json/wp/v2/posts
;我们也可以通过拿到文章的 ID 来访问特定文章,它的端点是/wp-json/wp/v2/posts/{id}
。 - 发送 HTTP 请求
要与 REST API 互动,你需要发送 HTTP 请求。可以使用多种工具来发送请求,例如:- 浏览器: 可以直接在浏览器地址栏中输入 REST API 端点(这个方法通常是用于 GET 请求)。
- 命令行工具: 使用像 Postman 这种工具来发送各种类型的 HTTP 请求。
- 编程语言: 使用编程语言(如 JavaScript、Python、PHP 等)来构建请求。
- 使用 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 网站开发能力哦。