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

2024-12-02 6 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函数 get_posts() 和 WP_Query 获取特定条件下的文章列表?
在WordPress主题中,如何使用 get_header() 和 get_footer() 函数包含页眉和页脚?
在WordPress主题中,如何使用 is_home() 和 is_front_page() 区分首页和博客页面?
如何使用WordPress的 add_shortcode() 函数创建自定义短代码?
在WordPress插件中,如何使用 update_option() 和 get_option() 来保存和检索设置?
如何使用WordPress的 get_header() 和 get_footer() 函数包含页眉和页脚?