类 wp 角色中的错误。"array_keys() expects parameter 1 to be array"



几天前,我注意到我无法再访问WordPress中的管理面板。我会用我的普通管理员用户名/密码登录,但后来我被重定向到网站主页,而不是WordPress面板。页面顶部的管理栏没有显示进入仪表板或编辑页面的常用选项,等等。当我在那之后尝试转到wp管理时,我得到了一个错误,说";很抱歉,您不能访问此页面">

当我启用wp_debug时,我开始看到以下错误消息:

警告:array_keys()要求参数1为数组,字符串在第291行的/var/www/wp-includs/class-wp-roles.php中给出

警告:第291行/var/www/wp-includs/class-wp-roles.php中为foreach()提供的参数无效

警告:array_keys()要求参数1为数组,字符串在第291行的/var/www/wp-includs/class-wp-roles.php中给出

警告:第291行/var/www/wp-includs/class-wp-roles.php中为foreach()提供的参数无效

即使我禁用了所有插件,这个错误也会显示,无论当前哪个主题处于活动状态,它都会显示。我在搜索中找不到太多关于这个错误的信息,关于类wp角色的几个线程是特定于我不使用的某些插件的。

我做了正常的第一次检查,比如关闭所有插件,检查wp-config.php,检查文件权限,检查phpmyadmin中的帐户角色/权限,我甚至使用phpmyadmin创建了一个新的管理员用户。我还将该网站加载到";"安全模式";其禁用所有插件并默认为";二十";WordPress中的主题。仍然没有运气访问WordPress的仪表板ie.wp-admin.php.

一些附加信息,我的网站使用了Storefront主题和WooCommerce,但由于即使这两个主题都不活动,也会显示此错误,这应该无关紧要,对吧?我的网站托管在GoDaddy上,当我第一次遇到这个错误时,该网站正在使用WordPress 6.0.3,但昨天它自动升级到6.1.1,但我仍然有同样的问题。(我真的希望升级能解决这个问题。)网站的其他一切似乎都很好。我就是无法访问管理面板!如有任何帮助,我们将不胜感激。

哇,太快了。我今天基本上创建了一个Stack Overflow账户,只是为了发布这个问题,经过几天的努力,我的头靠在桌子上,试图弄清楚这个问题,我在几个小时内就得到了解决方案。

对于那些遇到类似问题的人,一定要先进行定期检查以排除这些问题,但随后,请访问站点的phpmyadmin,然后访问wp_options表。查找wp_user_roles条目。确保它有这样的东西:

a:5:{s:13:"管理员";a:2:{s:4:"名称";s:13:"管理员";s:12:"能力";a:61:{s:13:"switch_themes";b:1;s:11:"edit_themes(编辑)";b:1;s:16:"activate_plugins(激活插件)";b:1;s:12:"edit_prugins(编辑插件)"moderate_ecomments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b=1;s:12:"upload_files";b+1;s:6:"im"端口";;b: 1;s: 15:";不感兴趣的html";;b: 1;s: 10:";edit_posts";;b: 1;s: 17:";edit_others_posts";;b: 1;s: 20:";edit_published_posts";b: 1;s: 13:";publish_posts";;b: 1;s: 10:";edit_pages";;b: 1;s: 4:";读";;b: 1;s: 8:";10级";;b: 1;s: 7:";9级";;b: 1;s: 7:";级别8";;b: 1;s: 7:";7级";;b: 1;s: 7:";6级";;b: 1;s: 7:";级别5";;b: 1;s: 7:";4级";;b: 1;s: 7:";3级";;b: 1;s: 7:";级别2";;b: 1;s: 7:";级别1";;b: 1;s: 7:";级别0";;b: 1;s: 17:";edit_others_pages";;b: 1;s: 20:";edit_published_pages";b: 1;s: 13:";publish_pages";;b: 1;s: 12:";delete_pages";;b: 1;s: 19:";delete_others_pages";;b: 1;s: 22:";delete_published_pages";;b: 1;s: 12:";delete_posts";;b: 1;s: 19:";delete_others_posts";;b: 1;s: 22:";delete_published_posts";;b: 1;s: 20:";delete_private_posts";;b: 1;s: 18:";edit_private_posts";;b: 1;s: 18:";read_private_posts";;b: 1;s: 20:";delete_private_pages";;b: 1;s: 18:";edit_private_pages";;b: 1;s: 18:";read_private_pages";;b: 1;s: 12:";delete_users";;b: 1;s: 12:";create_users";;b: 1;s: 17:";未感兴趣上传";;b: 1;s: 14:";编辑_白板";;b: 1;s: 14:";update_plugins";;b: 1;s: 14:";delete_plugins";;b: 1;s: 15:";install_plugins";;b: 1;s: 13:";update_ themes";;b: 1;s: 14:";install_themes";;b: 1;s: 11:";update_ core";;b: 1;s: 10:";list_users";;b: 1;s: 12:";remove_users";;b: 1;s: 13:";promote_users";;b: 1;s: 18:";edit_theme_options;;b: 1;s: 13:";delete_themes";;b: 1;s: 6:";"出口";;b: 1;}}s: 6:";编辑器";;a: 2:{s:4:"名称";s:6:"编辑器";s:12:"能力";a:34:{s:17:"moderate_ecomments";b:1;s:17:"manage_categories";b:1,s:12:"manage_links";b:1;s:12:"upload_files";b:1:;s:15:"unstered.html";b=1;s:10:"edit_posts"b:1;s:1:"edit_others_posts"b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts;7级";;b: 1;s: 7:";6级";;b: 1;s: 7:";级别5";;b: 1;s: 7:";4级";;b: 1;s: 7:";3级";;b: 1;s: 7:";级别2";;b: 1;s: 7:";级别1";;b: 1;s: 7:";级别0";;b: 1;s: 17:";edit_others_pages";;b: 1;s: 20:";edit_published_pages";b: 1;s: 13:";publish_pages";;b: 1;s: 12:";delete_pages";;b: 1;s: 19:";delete_others_pages";;b: 1;s: 22:";delete_published_pages";;b: 1;s: 12:";delete_posts";;b: 1;s: 19:";delete_others_posts";;b: 1;s: 22:";delete_published_posts";;b: 1;s: 20:";delete_private_posts";;b: 1;s: 18:";edit_private_posts";;b: 1;s: 18:";read_private_posts";;b: 1;s: 20:";delete_private_pages";;b: 1;s: 18:";edit_private_pages";;b: 1;s: 18:";read_private_pages";;b: 1;}}s: 6:";作者";;a: 2:{s:4:"名称";s:6:"作者";s:12:"能力";a:10:{s:12:"上传文件";b:1;s:10:"编辑帖子";b:1;s:20:"编辑发布帖子";b:1;s:13:"发布帖子"0;级别0";b:1;s:12:"删除帖子";b:1;s:22:"删除已发布帖子";b:1;}s:11:&";贡献者";;a: 2:{s:4:"名称";s:11:"贡献者";s:12:"能力";a:5:{s:10:"编辑帖子";b:1;s:4:"读取";b:1;s:7:"级别_1";b=1;s:7:"级别_0"1;}s:10:";订户";;a: 2:{s:4:"名称";s:10:"订户";s:12:"能力";a:2:{s:4:"读取";b:1;s:7:"级别_0";b:1;}}

我的wp_user_roles实际上只是设置了这个值:

AOK

原来这是错误的值!我不知道那是怎么发生的。在这个问题之前,我根本没有在phpmyadmin中乱搞。它一定是一个插件什么的。当我用正确的角色和能力列表替换AOK时,我立即能够再次访问WordPress管理面板。

如果你正在使用WooCommerce,还有一个额外的步骤:你需要取消激活,然后重新激活WooCommCommerce插件。这是因为上面的角色列表缺少一个特定于WooCommerce的角色;"商店经理";您可以访问WooCommerce的产品、订单、分析、优惠券等页面。

就是这样!巨大的道具@VijayHardaha帮助解决这个问题!我希望这条线索有一天能帮助其他人。

相关内容

最新更新