WordPress 管理员没有 wp-admin 权限

sir*_*nga 2 wordpress

我被要求检查 WordPress 安装,其中没有用户有权访问 wp-admin 目录,甚至管理员也无权访问。我尝试了在互联网上找到的所有解决方案,但均未成功:

  • 主站点加载良好,包含所有样式和文章,因此可以访问数据库。
  • 目录和文件具有正确的权限(文件为 644,目录为 755)。
  • 表前缀似乎没问题。
  • 我尝试禁用插件(重命名插件目录)并恢复默认的 .htaccess 但没有成功。
  • 即使用户看到页面说他们没有 wp-admin 页面的权限,也可以登录。登录后,我可以转到主页,我会看到上面的栏,其中包含新帖子、添加用户等命令,但如果我尝试使用其中任何一个,则会看到无权限页面。
  • 我检查了 SQL 数据库中的管理员权限,似乎没问题。
  • wp-admin/about.php 加载(不带 CSS),以便可以访问该目录。
  • 我尝试启用 WP_DEBUG 标志,但调试没有帮助。

我已经没有下一步要检查的选项了,非常欢迎任何建议。

Rob*_*ral 5

此问题是由 WordPress 表前缀重命名不当引起的。

简单地将表前缀从old_(旧前缀)重命名为new_(新前缀)会弄乱权限,并且用户将无法再访问/wp-admin(甚至是管理员)。

要正确重命名表前缀,您还需要重命名 和 中的一些条目(确切地说是 6 个条目new_optionsnew_usermeta

这是您要运行的查询:

/* Renaming prefixes in new_options */
UPDATE `new_options`
SET `option_name` = REPLACE( option_name, 'old_', 'new_' )
WHERE `option_name` LIKE 'old_%';

/* Renaming prefixes in new_usermeta */
UPDATE `new_usermeta`
SET `meta_key` = REPLACE( meta_key, 'old_', 'new_')
WHERE `meta_key` LIKE 'old_%';
Run Code Online (Sandbox Code Playgroud)

  • 这是对的!就我而言,“wp_user_roles”选项需要重命名为“wp_new_user_roles”。之后我就可以再次访问“/wp-admin”。 (2认同)