我刚刚安装了一个新版本的WP,我已将其转入网络安装(使用找到的说明here).
一切似乎都很顺利,我成功地添加了一个新网站,但我在列出/添加用户方面遇到了问题。
当我点击Users
菜单项列表给出以下警告-
警告:array\\u keys()要求参数1为数组,布尔值在{my dir}\\wp admin\\includes\\class wp users列表中给出。php在线307
该行为-$editable_roles = array_keys( get_editable_roles() );
- 问题是get_editable_roles()
正在转动false
.
当我尝试添加用户时,也会出现同样的问题,尽管警告位于不同的位置-
警告:array\\u reverse()要求参数1为数组,布尔值在{my dir}\\wp admin\\includes\\template中给定。php在线843
我尝试了显而易见的方法,停用所有插件(我添加了一个),并切换到默认主题,但警告仍然存在。
正在查看get_editable_roles()
我可以看到全球$wp_roles->roles
虽然是空的$wp_roles->role_objects
已正确填充。从这里开始,我真的不知道下一步该去哪里。
有谁能建议我如何解决这个问题吗?
最合适的回答,由SO网友:David Gard 整理而成
在DB中wp_user_roles
中的选项wp_options
是空的。我在中复制了相同选项的值wp_2_options
, 因为我已经添加了另一个博客。
此外,原始博客中的每个用户(在更改为网络之前,该博客已启动并运行)都没有针对wp_capabilities
和wp_user_level
中的选项wp_usermeta
. 因此get_editable_roles()
函数失败,进而导致上面列出的错误。
为了解决这个问题,对于原始博客上的每个用户,我从下面存储的数据中复制了相关用户级别的条目wp_2_capabilities
和wp_2_user_level
.