WordPress无法访问后台仪表盘,class-wp-roles.php报array_keys参数异常
解决WordPress无法访问后台(角色权限错误)
问题定位
从class-wp-roles.php第291行的错误提示来看,核心原因是数据库中存储用户角色的选项值损坏——wp_options表中的wp_user_roles字段被意外修改为字符串格式,而非WordPress预期的序列化数组,导致角色权限校验完全失效。
修复步骤
1. 修复wp_user_roles数据库条目
- 登录托管商提供的phpMyAdmin,找到你的WordPress数据库
- 找到
wp_options表(如果你的数据库前缀不是wp_,替换为实际前缀) - 搜索
option_name等于wp_user_roles的记录 - 查看
option_value字段:正常情况下应该是一段序列化的数组字符串,如果显示为普通文本、空值或乱码,说明数据已损坏
2. 替换为默认角色数据
将option_value的内容替换为WordPress默认的角色序列化数据(直接复制以下内容粘贴即可):
a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:61:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_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:14:"edit_others_pages";b:1;s:17:"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:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_attachments";b:1;s:18:"edit_private_attachments";b:1;s:20:"edit_published_attachments";b:1;s:15:"delete_attachments";b:1;s:22:"delete_others_attachments";b:1;s:25:"delete_private_attachments";b:1;s:28:"delete_published_attachments";b:1;s:12:"publish_attachments";b:1;s:14:"read_private_attachments";b:1;s:14:"manage_network";b:1;s:18:"manage_sites";b:1;s:12:"manage_network_users";b:1;s:12:"manage_network_themes";b:1;s:14:"manage_network_plugins";b:1;s:15:"manage_network_options";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:35:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_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:14:"edit_others_pages";b:1;s:17:"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:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_attachments";b:1;s:18:"edit_private_attachments";b:1;s:20:"edit_published_attachments";b:1;s:15:"delete_attachments";b:1;s:22:"delete_others_attachments";b:1;s:25:"delete_private_attachments";b:1;s:28:"delete_published_attachments";b:1;s:12:"publish_attachments";b:1;s:14:"read_private_attachments";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;s:12:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:20:"edit_published_attachments";b:1;s:15:"delete_attachments";b:1;s:28:"delete_published_attachments";b:1;s:12:"publish_attachments";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:12:"delete_posts";b:1;s:12:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:3:{s:12:"read";b:1;s:7:"level_0";b:1;}}}
3. 验证修复
- 保存数据库修改后,清除浏览器缓存
- 重新登录WordPress账号,尝试访问
wp-admin - 若仍有问题,可尝试重新生成
wp-config.php中的安全密钥(在phpMyAdmin中更新wp_options表的auth_key、secure_auth_key等字段,或直接在wp-config.php中替换为新的密钥)
补充说明
- 该问题与主题、插件无关,属于数据库核心配置损坏,常见于数据库意外中断、错误的SQL操作或第三方工具篡改数据
- 修复后建议备份数据库,避免同类问题再次发生
内容的提问来源于stack exchange,提问作者fredszt
相关产品推荐
相关产品推荐

