在WordPress中创建自定义REST API端点通常涉及到使用register_rest_route()
函数。以下是如何使用register_rest_route()
来创建一个简单的自定义REST API端点的步骤:
-
设置钩子:首先,你需要添加一个钩子到
rest_api_init
动作,这个动作在REST API初始化时触发。 -
注册路由:在钩子函数中,使用
register_rest_route()
函数来注册一个新的路由。
下面是一个示例代码,展示如何创建一个名为myplugin/v1/myendpoint
的端点,它将响应GET请求并返回一些数据:
function myplugin_register_rest_routes() {
// 注册一个新的REST API路由
register_rest_route('myplugin/v1', '/myendpoint', array(
'methods' => 'GET', // 允许的HTTP方法
'callback' => 'myplugin_myendpoint_callback', // 当路由被访问时调用的函数
));
}
add_action('rest_api_init', 'myplugin_register_rest_routes');
function myplugin_myendpoint_callback($request) {
// 获取请求参数
$param = $request->get_param('myparam');
// 处理逻辑并返回数据
$data = array(
'message' => '这是自定义端点的响应。',
'param' => $param,
);
// 返回一个WP_REST_Response对象
return new WP_REST_Response($data, 200);
}
在这个例子中,我们定义了一个名为myplugin/v1/myendpoint
的端点,它只接受GET请求。当这个端点被访问时,它会调用myplugin_myendpoint_callback
函数。这个回调函数处理请求,并返回一个包含消息和请求参数的数组。
以下是这个自定义端点如何工作的详细解释:
myplugin_register_rest_routes()
函数通过add_action()
钩子添加到rest_api_init
动作。- 在
myplugin_register_rest_routes()
函数内部,我们使用register_rest_route()
函数来注册一个新的路由。 register_rest_route()
的第一个参数是命名空间,它通常是插件或主题的名称,后跟版本号。- 第二个参数是路由的路径。
- 第三个参数是一个数组,其中包含了路由的详细信息,如允许的HTTP方法(
methods
)和回调函数(callback
)。 myplugin_myendpoint_callback()
函数是当端点被访问时调用的回调函数。它接收一个WP_REST_Request
对象作为参数,从中可以获取请求的参数和其他信息。- 回调函数返回一个
WP_REST_Response
对象,它包含了要发送回客户端的数据和HTTP状态码。
要测试这个端点,你可以访问类似以下URL的链接(假设你的WordPress站点地址是http://yourwordpresssite.com
):
http://yourwordpresssite.com/wp-json/myplugin/v1/myendpoint?myparam=value
这将返回一个JSON格式的响应,包含了你通过回调函数定义的数据。