WordPress REST API 设置指南,解锁高效数据交互能力

来自:素雅营销研究院

头像 方知笔记
2025年05月07日 00:12

什么是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性能。