WordPress函数:register_rest_route 注册REST API路由

11月/07日/WordPress/浏览 232

WordPress内置了 REST API,使用 REST API 可以很方便地开发APP或者小程序。

有时,WordPress提供的 REST API 无法满足我们的需求,还可以自己注册新的 REST API,随意扩展。


函数原型:


register_rest_route( string $namespace, string $route, array $args = array(), bool $override = false )


从函数原型看,只需要提供 $namespace(核心前缀后的第一个URL段。对于您的包/插件应该是唯一的) 和 $route(添加的路由的基本URL) 这两个参数就可以了。


但事实上, $args 这个参数是必须要有的,不然会报错的……


$args 是个复合参数,必须要包括 methods、callback、permission_callback 三个字段。


methods 指明是 GET 还是 POST 或者其他HTTP请求,可以使用字符串,也可以使用 WordPress 定义的常量:


WP_REST_Server::READABLE = ‘GET’


WP_REST_Server::EDITABLE = ‘POST, PUT, PATCH’


WP_REST_Server::DELETABLE = ‘DELETE’


WP_REST_Server::ALLMETHODS = ‘GET, POST, PUT, PATCH, DELETE’


callback 和 permission_callback 分别是回调函数,和权限检查回调函数。实际中有时不提供 permission_callback 也不会报错,有时却会报Waring警告,具体原因未知。如果,不需要权限控制,可以简单地指定为 '__return_true'。


使用举例:


add_action('rest_api_init', function () {
	register_rest_route('foo', '/foo', array(
		'methods'  => 'GET',
		'callback' => function () {
			return 'baz';
		},
		'permission_callback' => '__return_true',
	));
});

发表评论

暂无评论,抢个沙发...

客服 工单