无法以管理员身份访问WordPress-但我可以以用户身份登录!

时间:2021-02-26 作者:Diana D Jensen

您好,我有以下问题:

我是WordPress/WooCommerce商店的管理员,这家商店已经存在了一段时间。从今天起,当我尝试以管理员身份登录Word Press时,我要么根本无法访问wp admin(登录)页面,要么确实可以访问,我输入用户名和密码并登录,但作为普通客户(这是一家WooCommerce商店),无法访问仪表板。当我无法访问/wp admin登录屏幕时(我应该在那里写入用户名和密码),我会收到一条消息,说我没有足够的权限查看页面。我在输入用户名和密码之前收到消息,这意味着我没有权限查看登录屏幕,而不是管理仪表板。当我偶尔可以登录时,我会看到网站前端,顶部没有管理工具栏。我正在使用Chrome浏览器、XStore主题和Woocommerce,以及许多小插件。

该网站运行良好,从外部看,当作为客户登录时,从内部看都很好。需要注意的是,几天前我确实更新了一些插件,并添加了一些产品。除此之外,最近没有其他变化。

我尝试过:

从cPanel重命名插件文件夹替换。使用旧版本的htaccess文件逐个重命名插件,使用匿名浏览器,使用其他设备删除Cookie,删除我的IP阻止。htaccess我还没有尝试更改密码,因为我的密码似乎有效-但不是作为管理员。

我能做什么?

1 个回复
SO网友:rudtek

通过在\\u usermeta表中查找名为wp\\u capabilities的meta\\u键列条目,可以检查phpmyadmin中的用户凭据。由于您只有一个用户,因此它将是唯一的条目。如果您有多个用户,我猜您是ID为1的用户,因此请将wp\\u capabilities列与user\\u ID column entry匹配“;1英寸;并查看meta\\u值是否显示administrator。它是序列化数据,因此看起来可能如下所示:a:1:{s:13:"administrator";b:1;}.

如果那里没有这个条目,您可以用上面的行替换meta并尝试登录。此时您应该是管理员。

如果需要同时添加新用户,有两种简单的方法:

wp CLI:wp user create newusername newuseremail --role=administrator --user_pass="newuserpass" --first_name=newuserfirst --last_name=newuserlast

用您自己的信息替换newuser变量。。。

如果您没有wp CLI或不确定如何使用它,可以将此函数添加到主题的函数中。php并加载站点一次。它将创建用户。请确保在之后删除此代码!!!

function rt_admin_account(){
  $user = \'\';  //put username here
  $pass = \'\'; //put pw here
  $email = \'\'; //put email here
  if ( !username_exists( $user )  && !email_exists( $email ) ) {
    $user_id = wp_create_user( $user, $pass, $email );
    $user = new WP_User( $user_id );
    $user->set_role( \'administrator\' );
  } 
}
add_action(\'init\',\'rt_admin_account\');
如果该用户不存在,则会创建一个新用户。如果不起作用,请将用户名更改为新的用户名,并使用不同的电子邮件。