我正在使用WP-restapi制作一个插件,一切似乎都按照预期工作。然而,有一种行为我不理解。这个authPermissionCheck()
方法已执行twice 对于生成输出之前的每个请求-第一here 然后here. 这看起来效率很低。有人知道为什么吗?
以下是我的插件代码的相关部分(精简):
class My_REST_Controller
{
public function __construct()
{
add_action( \'rest_api_init\', function()
{
$this->user = wp_get_current_user();
register_rest_route( \'myplug/v1\', \'/auth\', array(
array(
\'methods\' => \\WP_REST_Server::READABLE,
\'callback\' => array( $this, \'authenticate\' ),
\'permission_callback\' => array( $this, \'authPermissionCheck\' )
)
));
});
}
// This method is called twice when the
// auth endpoint is hit. Why?
public function authPermissionCheck()
{
if ( ! user_can( $this->user, \'read\' ) ) {
return new \\WP_Error( \'rest_forbidden\', esc_html__(
\'No permission.\', \'my-text-domain\' ),
array( \'status\' => 401 )
);
}
return false;
}
}