什么是WordPress REST API?
WordPress REST API 是WordPress提供的一套标准化接口,允许开发者通过HTTP请求与网站内容进行交互。它支持JSON格式的数据传输,能够实现跨平台、跨语言的数据调用,为移动应用、第三方服务或前后端分离架构提供核心支持。
如何配置WordPress REST API设置
1. 确保REST API已启用
WordPress 4.7及以上版本默认开启REST API功能。可通过以下方式验证:
- 访问
https://你的域名/wp-json/
- 若返回JSON格式的站点数据,则说明API正常运行
2. 基础权限控制
方法一:通过插件管理 安装插件如 “JWT Authentication for WP REST API” 或 “REST API Toolbox”,可便捷设置:
- API端点访问权限
- 用户角色权限分配
- 自定义字段暴露控制
方法二:代码配置(functions.php)
// 限制特定用户角色访问API
add_filter('rest_authentication_errors', function($result) {
if (!current_user_can('edit_posts')) {
return new WP_Error('rest_forbidden', __('仅管理员可访问API'), ['status' => 401]);
}
return $result;
});
3. 自定义端点与字段
通过 register_rest_route()
创建自定义API路由:
add_action('rest_api_init', function() {
register_rest_route('custom/v1', '/latest-posts', [
'methods' => 'GET',
'callback' => 'get_latest_posts',
]);
});
function get_latest_posts() {
$posts = get_posts(['numberposts' => 5]);
return array_map(function($post) {
return [
'title' => $post->post_title,
'excerpt' => wp_trim_words($post->post_content, 20)
];
}, $posts);
}
4. 安全加固建议
- 禁用JSONP:防止跨站请求伪造(CSRF)
add_filter('rest_jsonp_enabled', '__return_false');
- 启用HTTPS:强制所有API请求通过SSL加密
- 限流控制:使用插件如 “Disable WP REST API” 限制请求频率
常见问题解决方案
Q:API返回404错误?
- 检查固定链接设置(需非”朴素”模式)
- 确认服务器未屏蔽
/wp-json/
路径
Q:如何隐藏敏感数据?
通过 rest_prepare_{post_type}
过滤器移除私有字段:
add_filter('rest_prepare_post', function($response) {
unset($response->data['author_meta']);
return $response;
});
结语
合理配置WordPress REST API能显著提升网站扩展性,但需平衡功能开放与安全性。建议结合业务需求逐步启用功能,并通过监控日志持续优化API性能。