用户登录

WordPress 本身为用户资源提供了接口,不过使用核心自带的用户接口需要验证用户的身份,也就是只能是有权限的用户才可以去创建用户 ..

所以这个用户接口并不适合用来注册新的用户 .. 我们可以在自己的插件里面去创建一个能够创建新用户的接口 .. 这个功能跟核心自带的用户接口差不多 .. 只需要去掉验证用户权限的部分 ..

下面我们可以一起去创建一个能够注册用户的接口 ..

先找到自己创建的插件 .. 我这里就是在 web .. app .. plugins .. 下面的 ninghao-wp-rest ..

这里我们可以使用 class 的形式去创建一个 REST 接口 .. 添加一个文件,放在插件的 includes 下面的 endpoints 下面 .. 文件的名字是 class-ninghao-wp-rest-users-controller.php ..

在这个 php 文件里,可以去创建一个接口类 .. 名字是 Ninghao_WP_REST_Users_Controller .. 这个类可以让它继承一下 WordPress 核心自带的 WP_REST_Users_Controller 这个类 ..

里面再添加一个 protected $meta; 这个 meta 表示的是用户的自定义字段 .. 一会儿我们会往这个 $meta 里面放点东西 ..

__construct()

然后添加一个 construct 方法 .. 在方法里面,可以设置一下接口相关的东西 .. $this .. namespace 是接口的命名空间 .. 有点像是接口地址里面的前缀 .. 这里可以设置成 users/v1 ..

再添加一个 $this .. rest_base .. 它是路由地址里面的一部分 .. 我们要添加一个可以注册用户用的接口,所以这个 rest_base 可以叫它 register,表示注册 .. 这些东西我们都可以自己随便去定义 ..

下面再添加一个 $this .. meta .. 这里要新建一个 WP_REST_User_Meta_fields 实例 .. 这里 $meta 里面的东西就可以处理用户的自定义字段了 ..

也就是在注册用户的时候,除了用户的名字,邮件这些基本的信息以外,还可以包含一些额外的信息 ...

register_routes()

在 construct 方法的下面,再添加一个注册路由用的方法 .. 名字是 register_routes ..

注册路由用的相关的配置我们可以去复制一下 ..

先找到 wordpress 的核心 .. 在 wp-includes 的下面 .. 打开 rest-api .. endpoints .. 打开这个目录下面的 class-wp-rest-users-controller.php

这个文件里面定义的是 WordPress 核心的用户资源相关的接口 .. 打开以后,找到它的 register_routes 方法,复制一下第一个 register_rest_route ..

把它粘贴到我们自己创建的这个类的 register_routes 里面 ..

注册新的 REST 接口,用的就是这个 register_rest_route ..

这里注册了两个路由 .. 可以去掉第一个 .. $this 的 namespace 是路由的命名空间 .. 第二个参数是路由 .. 这里用了一个斜线,加上 $this 的 rest_base ,就是当前实例里面的 rest_base 的值 ..

在类的 construct 里面, 我们把它设置成 register ..

第三个参数是一些配置参数,它的值是个数组 .. 里面的每个项目又是一个数组 .. 项目里面有 methods ,设置了这条路由支持的 HTTP 方法 .. 这里用了 WP_REST_Server 类里的 CREATABLE .. 它表示的值就是 POST ..

callback 是处理这个请求用的回调 .. 我们在这个类里要定义一个 create_item 方法 .. permission_callback 是权限的检查用的回调 .. 名字是 create_item_permissions_check ..

先在这个类里添加一个这样的方法 .. 名字是 create_item_permissions_check

在这个方法里,可以检查用户的权限 .. 根据检查的结果返回 true ,或者错误信息 . 我们先返回一个 true ..

这样任何人都可以通过我们创建的这个接口去创建新的用户 ..

create_item

处理请求用的回调可以直接复制一下 .. 在这个 WP_REST_Users_Controller 类里面 .. 搜索一下 create_item ..

然后复制一下这个方法 ..

把它粘贴到我们自己创建的这个类里面 ...

注册路由

下面再打开自定义插件里的 ninghao-wp-rest.php .. 在这里还得再去做点配置 ..

先导入刚才创建的 php 文件 .. require .. 用一下 plugin_dir_path .. 给它一个 __FILE__ .. 加上 includes.. endpoints .. class-ninghao-wp-rest-users-controller.php ..

然后再找个地方 .. 用一下 add_action .. 添加一个钩子 .. 名字是 rest_api_init .. 挂载的东西可以用一个匿名函数 .. 里面先新建一个刚才我们创建的类的实例 .. 名字可能是 $users .. 新建一个 Ninghao_WP_REST_Users_Controller ..

再用一下 $users 里的 register_routes .. 这样在初始化 WordPress REST 接口的时候,就会把我们刚才定义的接口也添加进去了 ..

用户注册接口:准备接口(WordPress)《 微信小程序:用户注册 #5 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点