WordPress 提供了强大的 REST API,用于在应用程序之间进行通信。它允许开发者通过标准的 HTTP 请求(如 GET、POST、PUT、DELETE 等)与 WordPress 网站进行交互,获取数据、创建内容或更新数据。以下是 WordPress REST API 的主要端点(Endpoints)和它们的使用方法。

  1. 基础信息
    API 基础 URL:https://example.com/wp-json/wp/v2/
    将 example.com 替换为你自己 WordPress 站点的域名。
  2. 通用 REST API 端点格式
    GET 请求:从服务器获取数据(如文章、用户、分类等)。
    POST 请求:向服务器提交数据,通常用于创建新资源(如创建新文章或用户)。
    PUT 请求:更新现有资源。
    DELETE 请求:删除资源。
  3. 主要 API 端点
  4. Posts(文章)
    获取所有文章:
    GET /wp-json/wp/v2/posts

获取特定文章:
GET /wp-json/wp/v2/posts/{id}

创建文章(需要身份验证):
POST /wp-json/wp/v2/posts
参数:title(标题)、content(内容)、status(状态:publish、draft 等)

更新文章:
PUT /wp-json/wp/v2/posts/{id}

删除文章:
DELETE /wp-json/wp/v2/posts/{id}

  1. Pages(页面)
    获取所有页面:
    GET /wp-json/wp/v2/pages

获取特定页面:
GET /wp-json/wp/v2/pages/{id}

创建页面:
POST /wp-json/wp/v2/pages

更新页面:
PUT /wp-json/wp/v2/pages/{id}

删除页面:
DELETE /wp-json/wp/v2/pages/{id}

  1. Categories(分类)
    获取所有分类:
    GET /wp-json/wp/v2/categories

获取特定分类:
GET /wp-json/wp/v2/categories/{id}

创建分类:
POST /wp-json/wp/v2/categories

更新分类:
PUT /wp-json/wp/v2/categories/{id}

删除分类:
DELETE /wp-json/wp/v2/categories/{id}

  1. Tags(标签)
    获取所有标签:
    GET /wp-json/wp/v2/tags

获取特定标签:
GET /wp-json/wp/v2/tags/{id}

创建标签:
POST /wp-json/wp/v2/tags

更新标签:
PUT /wp-json/wp/v2/tags/{id}

删除标签:
DELETE /wp-json/wp/v2/tags/{id}

  1. Comments(评论)
    获取所有评论:
    GET /wp-json/wp/v2/comments

获取特定评论:
GET /wp-json/wp/v2/comments/{id}

创建评论:
POST /wp-json/wp/v2/comments

更新评论:
PUT /wp-json/wp/v2/comments/{id}

删除评论:
DELETE /wp-json/wp/v2/comments/{id}

  1. Users(用户)
    获取所有用户:
    GET /wp-json/wp/v2/users

获取特定用户:
GET /wp-json/wp/v2/users/{id}

创建用户:
POST /wp-json/wp/v2/users

更新用户:
PUT /wp-json/wp/v2/users/{id}

删除用户:
DELETE /wp-json/wp/v2/users/{id}

  1. Media(媒体文件)
    获取所有媒体文件:
    GET /wp-json/wp/v2/media

获取特定媒体文件:
GET /wp-json/wp/v2/media/{id}

上传媒体文件:
POST /wp-json/wp/v2/media
注意:使用 multipart/form-data 格式上传文件。

更新媒体文件:
PUT /wp-json/wp/v2/media/{id}

删除媒体文件:
DELETE /wp-json/wp/v2/media/{id}

  1. Menus(菜单)
    WordPress REST API 默认不支持菜单的操作,但可以通过自定义端点或安装插件来支持。

获取菜单(需要插件):
GET /wp-json/wp/v2/menus/{id}

  1. 身份验证
    REST API 的一些操作(如创建、更新、删除资源)需要进行用户身份验证。常用的验证方式有:

Cookie 验证:适用于 WordPress 登录用户。
应用密码:用户创建应用密码后,应用可以使用用户名和应用密码进行验证。
JWT(JSON Web Token)验证:通过插件(如 JWT Authentication for WP REST API)可以启用基于 JWT 的身份验证。

  1. API 查询参数
    WordPress REST API 提供了许多可选的查询参数,帮助开发者过滤和排序请求的数据。

常用参数:
?per_page={number}:每页返回的项目数(默认 10,最大 100)。
?page={number}:分页。
?search={string}:按关键词搜索内容。
?orderby={field}:排序字段,如 date、title。
?order={asc|desc}:排序顺序(升序或降序)。
?status={status}:筛选特定状态(如 publish、draft)。

  1. 自定义端点
    开发者可以创建自定义的 REST API 端点来满足特定需求。使用 WordPress 提供的 register_rest_route() 函数可以注册新的 API 端点:

add_action('rest_api_init', function () {

register_rest_route('myplugin/v1', '/custom-route/', array(
    'methods' => 'GET',
    'callback' => 'my_custom_function',
));

});

function my_custom_function() {

return new WP_REST_Response('Hello, this is a custom API response.', 200);

}

  1. API 文档与开发工具
    官方文档:WordPress REST API 的官方文档提供了全面的使用指南:WordPress REST API 文档
    Postman:使用 Postman 等工具可以方便地调试 REST API 请求,测试参数、头部和响应。
    通过 WordPress REST API,开发者可以非常灵活地操作 WordPress 网站的数据,构建前后端分离的应用或与其他系统进行集成。