1. 前端与后端的通讯方式
WordPress前端与后端的通讯主要通过 REST API 或 AJAX 完成:
- REST API: WordPress自带的REST API允许前端和后端通过HTTP请求以JSON格式交换数据,例如获取文章、提交表单等操作。REST API以REST架构为基础,广泛用于现代单页应用(SPA)和移动端开发[1].
- AJAX: WordPress也支持通过AJAX发送异步请求,尤其在需要操作后端数据且无需刷新页面的情况下(如动态加载更多内容)。这通常通过
admin-ajax.php
实现[2].
2. API设计
WordPress REST API的设计基于以下原则和结构:
- 路由与端点:
- 每个API请求基于固定的URL路径(路由)。
- 端点是提供具体功能的接口,例如获取某篇文章的数据。端点通常以
/wp-json/
开头,例如:https://example.com/wp-json/wp/v2/posts
[1].
- 请求方法:
GET
: 用于读取数据(如获取文章列表)。POST
: 用于创建新资源(如发布文章)。PUT/PATCH
: 用于更新现有资源。DELETE
: 用于删除资源[3].
- 自定义端点:
- 开发者可以通过插件或主题扩展REST API,添加自定义端点。例如:
add_action('rest_api_init', function() { register_rest_route('custom/v1', '/data', array( 'methods' => 'GET', 'callback' => 'custom_callback_function', )); });
- 开发者可以通过插件或主题扩展REST API,添加自定义端点。例如:
3. URL入口
WordPress REST API的默认入口为 https://yourdomain.com/wp-json/
,主要包括以下结构:
- 核心端点:
/wp/v2/posts
: 获取文章数据。/wp/v2/users
: 获取用户信息。/wp/v2/categories
: 获取分类数据。
- 自定义端点:
- 开发者可以定义自有的命名空间(如
custom/v1
)和端点路径,实现特定功能[1].
- 开发者可以定义自有的命名空间(如
4. 权限控制
WordPress REST API内置了一套权限控制机制,用于确保用户只能访问其有权限操作的数据:
- 非公开端点:
- 某些端点(如用户数据)默认仅对登录用户开放,需通过
wp_nonce
或OAuth等方式验证用户身份[3].
- 某些端点(如用户数据)默认仅对登录用户开放,需通过
- 权限校验:
- 在注册端点时,可以通过
permission_callback
函数校验用户权限。例如:register_rest_route('custom/v1', '/data', array( 'methods' => 'GET', 'callback' => 'custom_callback_function', 'permission_callback' => function() { return current_user_can('edit_posts'); }, ));
- 该例中,只有具备
edit_posts
权限的用户才能访问[2].
- 在注册端点时,可以通过
- 认证机制:
- WordPress支持基于Cookie的身份验证(默认方式)。
- 第三方插件支持更复杂的认证方式,如JWT(JSON Web Token)或OAuth。
总结
WordPress REST API是前后端通讯的核心工具,提供了灵活的路由、端点设计及权限控制机制。通过自定义端点和权限校验,开发者可以安全、高效地实现复杂的功能。
References
- WordPress REST API Handbook. (n.d.). Retrieved from https://developer.wordpress.org/rest-api/
- Routes and Endpoints – REST API Handbook. (n.d.). Retrieved from https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/
- A Beginner’s Guide to the WordPress REST API. (n.d.). Retrieved from https://explinks.com/blog/a-beginners-guide-to-the-wordpress-rest-api/
- WordPress REST API 权限控制. (2025). Retrieved from https://zhuanlan.zhihu.com/p/718809670