在WordPress中创建自定义REST API端点通常涉及以下步骤:
-
注册自定义端点:使用
register_rest_route()
函数来注册一个新的API端点。 -
创建端点处理函数:定义一个函数来处理对端点的请求,并返回相应的数据。
-
可选:添加权限检查:使用
check_ajax_referer()
或自定义逻辑来确保只有有权限的用户可以访问端点。
以下是一个示例,展示如何在WordPress主题的functions.php
文件或插件中创建一个简单的自定义REST API端点:
// 添加自定义REST API端点
add_action( 'rest_api_init', function () {
// 注册一个新的API路由
register_rest_route( 'your-plugin/v1', '/your-endpoint/', array(
// 定义端点的可用HTTP方法
'methods' => 'GET',
// 定义端点的处理函数
'callback' => 'my_custom_endpoint',
// 可以添加权限检查
'permission_callback' => function () {
// 这里可以添加权限检查逻辑,例如:
// return current_user_can( 'read' );
return true; // 允许所有用户访问
},
) );
} );
// 自定义端点的处理函数
function my_custom_endpoint( $request ) {
// 获取请求参数
$param = $request->get_param( 'param' );
// 返回数据
return new WP_REST_Response( array(
'message' => '这是自定义端点的响应',
'param' => $param,
), 200 );
}
在这个示例中:
your-plugin/v1
是API的命名空间,通常用于区分不同的插件或功能。/your-endpoint/
是API端点的路径。methods
定义了允许的HTTP方法,这里是GET
。callback
是处理请求的函数。permission_callback
是一个可选的回调函数,用于检查用户是否有权限访问端点。
在注册端点后,你可以通过以下URL访问它:
https://yourwordpresssite.com/wp-json/your-plugin/v1/your-endpoint/?param=value
请确保将yourwordpresssite.com
替换为你的实际WordPress网站的URL,并根据需要替换param
和value
。
记住,在开发插件时,最好使用插件来添加自定义端点,而不是直接在主题的functions.php
文件中,这样可以避免在主题更新时丢失自定义代码。