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 的身份验证。 5. API 查询参数 WordPress REST API 提供了许多可选的查询参数,帮助开发者过滤和排序请求的数据。

常用参数: ?per_page={number}:每页返回的项目数(默认 10,最大 100)。 ?page={number}:分页。 ?search={string}:按关键词搜索内容。 ?orderby={field}:排序字段,如 date、title。 ?order={asc|desc}:排序顺序(升序或降序)。 ?status={status}:筛选特定状态(如 publish、draft)。 6. 自定义端点 开发者可以创建自定义的 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); } 7. API 文档与开发工具 官方文档:WordPress REST API 的官方文档提供了全面的使用指南:WordPress REST API 文档 Postman:使用 Postman 等工具可以方便地调试 REST API 请求,测试参数、头部和响应。 通过 WordPress REST API,开发者可以非常灵活地操作 WordPress 网站的数据,构建前后端分离的应用或与其他系统进行集成。