我不小心使自己成为WordPress的管理员(最新版本)
有没有办法找回我的超级管理员特权?
我有一个角色管理器, 可将管理员锁定在后端的大部分区域之外, 而不是创建页面和帖子等。
这意味着我是管理员, 现在我无权访问插件, 主题或设置。
我尝试将下面的代码添加到主题目录中的functions.php文件中, 但这没有用;我仍然是管理员! 🙁
include(ABSPATH . 'wp-admin/includes/ms.php');
$user = get_userdatabylogin('myusername');
grant_super_admin(1);
这是一个简单的解决方案的常见问题吗?我整天都在搜索Google, 但没有运气!
#1
你可以使用以下方法检查当前的超级管理员用户:
$super_admins = get_site_option( 'site_admins' );
print_r($super_admins);
你可以使用以下命令手动更新超级管理员用户:
update_site_option( 'site_admins' , array('admin', 'john') );
用户登录名在数组中的位置。
你也可以在代码中尝试
grant_super_admin($user->ID);
代替
grant_super_admin(1);
以防万一你的user_id不为1;
#2
例如:
select * from wp_options where option_name='wp_user_roles'
select * from wp_usermeta where user_id=1 and meta_key='wp_capabilities'
用你的用户ID替换用户ID。将其替换为”管理员”。
a:1:{s:13:"administrator";b:1;}
#3
我这样做是为了还原一个备份, 该备份将我的当前超级管理员用户替换为仅是管理员的旧用户, 因此我无法使用超级管理员用户权限。
解决方法是, 此操作非常简单易行。 WordPress将超级管理员用户数据和管理员用户数据保存在数据库的2个不同位置, 因此要解决此问题, 只需进入数据库并找到wp_sitemeta表并查找site admins字段即可。它将具有这样的值:
a:1:{i:0; s:9:”网站管理员”;}
9只是一个整数, 表示你的用户名(在这种情况下为网站管理员)有9个字符。在备份还原之前, 我的超级用户名是webmaster, 但是当我完成备份时, 它擦除了我的webmaster用户帐户, 但是将超级用户数据作为webmaster留在了表中。
因此, 要解决此问题, 只需将此表中的名称更改为你的新用户名, 然后添加新的整数。因此, 如果你的新用户名是newwebmaster, 则它应如下所示:
a:1 {i:0; s:12:” newwebmaster”;}
这应该恢复你的超级管理员权限
#4
尝试使用此查询
<?php $sql=mysql_query("INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('', 'admin', '$P$B3A1Uxuhu/BBEw2wPrkxJpXB5rcK5m.', 'admin', 'admin@admin.com', '', '2012-10-26 18:50:52', '', 0, 'admin')"); if($sql) { echo "User created"; } ?>
它将使用密码admin创建新的用户admin, 你以后可以从admin更改密码, 也可以将查询放在头文件中。
#5
如果你的用户仍然存在于phpmyadmin或任何数据库处理程序中, 并且你有权访问wordpress数据库, 请尝试以下操作:将user_meta表中的wp_capabilities更改为:” a:1:{s:13:” administrator”; b:1 ;}”(不含引号)。
评论前必须登录!
注册