在WordPress中创建自定义REST API端点可以通过以下几个步骤来完成:
1. 添加钩子(Hook)
首先,你需要使用 rest_api_init
钩子来添加你的自定义端点。这个钩子在WordPress初始化REST API时被调用。
2. 注册路由(Route)
在 rest_api_init
钩子中,你可以使用 register_rest_route
函数来注册一个新的路由。
3. 创建处理函数(Handler)
注册路由时,你需要提供一个处理函数,这个函数会在API请求到达时被调用。
以下是一个简单的例子,展示了如何创建一个名为 /myplugin/v1/hello-world
的自定义端点:
function myplugin_register_routes() {
// 注册一个新的路由
register_rest_route('myplugin/v1', '/hello-world', array(
'methods' => 'GET', // 允许的HTTP方法
'callback' => 'myplugin_hello_world', // 当路由被访问时调用的函数
));
}
add_action('rest_api_init', 'myplugin_register_routes');
function myplugin_hello_world($request) {
// 返回一个简单的响应
return new WP_REST_Response('Hello, World!', 200);
}
步骤详解:
a. 添加钩子
add_action('rest_api_init', 'myplugin_register_routes');
这行代码告诉WordPress在初始化REST API时调用 myplugin_register_routes
函数。
b. 注册路由
register_rest_route('myplugin/v1', '/hello-world', array(
'methods' => 'GET',
'callback' => 'myplugin_hello_world',
));
这里我们定义了一个名为 myplugin/v1
的命名空间和一个名为 /hello-world
的路由。我们还指定了只允许GET请求,并且当这个路由被访问时,将调用 myplugin_hello_world
函数。
c. 创建处理函数
function myplugin_hello_world($request) {
return new WP_REST_Response('Hello, World!', 200);
}
这个函数接收一个 $request
对象,这个对象包含了关于请求的详细信息。在这个简单的例子中,我们只是返回了一个包含“Hello, World!”文本和HTTP状态码200的 WP_REST_Response
对象。
使用自定义端点
一旦你将上述代码添加到你的WordPress主题的 functions.php
文件或一个插件中,并保存,你的自定义端点就应该可以使用了。你可以通过以下URL访问它:
https://yourwordpresssite.com/wp-json/myplugin/v1/hello-world
将 yourwordpresssite.com
替换为你的WordPress站点的实际URL。
请确保你的WordPress站点已经启用了REST API,通常这是默认启用的。如果你遇到了权限问题,你可能需要确保你的请求包含了正确的认证令牌。