周六我花了几个小时寻找这个错误。我在网上找不到描述我最终解决方案的指南。这是我的解决方案。
在WP core中,“您没有足够的权限访问此页面。”在结束时生成错误/wp-admin/includes/menu.php
. A.grep
我的插件目录也显示了几个插件也会产生这个错误。
备份menu.php
, 并替换if
在第224-227行(从v3.5开始)上阻塞以下内容:
if ( !user_can_access_admin_page() ) {
$a = array(
\'Pages No Access\' => $_wp_menu_nopriv,
\'User Info\' => $current_user,
\'Roles\' => $wp_roles->get_names(),
);
$s = sprintf("\\n<br /><pre>%s</pre>", print_r($a, true));
do_action(\'admin_page_access_denied\');
wp_die( __(\'You do not have sufficient permissions to access this page.\'.$s) );
}
DON\'T Leave this code live on your site unless you are actively debugging! 将此替换为备份
menu.php
如果你需要离开一会儿。
再次尝试访问管理端。此错误页面将告诉您一些事情:
如果您在故障页面上获得其他输出,这将告诉您故障是由WP核心生成的。就我而言,的确如此。如果没有获得额外的输出,您知道需要开始查找导致错误的插件中的任何页面Pages No Access
数组设置为1
用户无法访问。在我的情况下,所有页面都设置为1
.
英寸User Info
, 检查用户是否具有正确的roles and capabilities. 在我的例子中,用户的角色是10
以及他们作为管理员应该具备的能力英寸Roles
您将看到该站点已定义角色的列表。在我的情况下,我没有定义角色。这就是我的问题在我的例子中,我可以在phpMyAdmin中浏览我的数据库,并查找[WPDB_PREFIX]_[SITENO]_user_roles
中的条目[WPDB_PREFIX]_[SITENO]_options
桌子我改变了我的WPDB_PREFIX
, 但是一些插件创建了一个自定义用户角色,并使用默认值编写了这个角色wp_
前缀我能够将入口从工作场所复制到非工作场所。只要我这样做了,管理员就可以立即访问该网站。我的安装更加复杂,因为我使用new blog templates 插件和我的模板站点的数据库也以同样的方式损坏。
我希望这有帮助。