WordPress数据库整合导致后台登录无权限解决方法

张子凡 WordPress建站 2015-08-09 18:42:52 阅读(...) 评论(1)

最近这一段时间子凡都在做泪雪旗下站点间的用户个人中心,其中难免遇见各种问题,那么遇见问题就需要去解决,所以这里子凡就把关于 WordPress 数据库会员数据整合出现的一个问题及解决方案记录在博客了吧!

今天在做整合时的一些数据库同步时出现一个问题,就是 WordPress 用户登录后台提示“你没有足够的权限访问该页面”,其实这样的情况经常遇见,有些时候修改过 WordPress 的数据库特别是修改 WordPress 用户 ID 时,不久前子凡发表过一篇《WordPress 修改用户 ID 的方法》,其实稍有不注意也会引起这样的情况出现。

出现这样的情况其实很简单,只要你理解到 WordPress 的一些数据表的分别作用是什么你就了解了,WordPress 用于存放用户信息的主要有两个表:wp_users,wp_usermeta(wp_ 为安装 WordPress 是用户选择的数据表前缀),user 主要存放的就是用户的基本信息,usermeta 就是存放的用户的一些权限配置。其次还有就是 wp_posts,wp_comments 这两张表,也关联这用户数据,比如文章作者,评论信息等。所以如果你只是修改 WordPress 的用户 ID,请大家参考《WordPress 修改用户 ID 的方法》一文。

下面还是说说子凡这次的主题,登陆后提示:

You do not have sufficient permissions to access this page.(你没有足够的权限访问该页面)

wp_usermeta 表中存储了用户权限,这个权限的值是以 wp 前缀开头的,以站点的首个管理员为例,该管理员用户 id 为 1,角色是 administrator,则表中就有类似这样的记录(如下图:倒数第二条记录)

user_id->1, meta_key->wp_capabilities, meta_value->a:1:{s:13:"administrator";s:1:"1";}

WordPress user add by sql

还有就是截图的最后一条数据记录,这一条也是必不可少的,这就是 WordPress 对用户的等级权限设置。

截图中是管理员数据,但是在子凡做用户数据的时候,一个普通的用户是不可能使用管理员权限的,一般为订阅用户即可,同理我们也只需要根据上面方法,给大家写两条例子吧!

user_id->1, meta_key->wp_capabilities, meta_value->a:1:{s:10:"subscriber";s:1:"1";}

user_id->1, meta_key->wp_user_level, meta_value->0

1
2
3
4
//在数据库运行以下SQL即可简单的插入一个用户,大家使用记得看清参数
INSERT INTO wp_users SET ID='用户ID', user_login='用户名', user_email='用户邮箱',  user_pass='用户密码'
INSERT INTO wp_usermeta SET user_id='用户ID', meta_key='wp_capabilities', meta_value='a:1:{s:10:"subscriber";s:1:"1";}'
INSERT INTO wp_usermeta SET user_id='用户ID', meta_key='wp_user_level', meta_value='0'

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-user-add-by-sql.html

发表评论