我刚刚安装了一个新版本的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.