如何使用 WordPress REST API 创建自定义端点?

2024-12-02 33 0

在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,通常这是默认启用的。如果你遇到了权限问题,你可能需要确保你的请求包含了正确的认证令牌。

相关文章

如何在WordPress插件中使用ajax?
如何通过WordPress函数创建自定义菜单?
在WordPress主题开发中,如何使用WP_Customize_Manager来自定义主题选项?
如何使用WordPress的filter钩子修改输出内容?
如何使用WordPress的action钩子添加自定义JavaScript?
在WordPress插件中,如何使用自定义表单和nonce字段来增强安全性?