通过数据库添加WordPress MU网络管理员

时间:2012-11-16 作者:quadium32

我正在获取WordPress MU网络的副本,并在本地机器上运行,以用于开发目的(目前使用WordPress 3.2.1)。我需要访问网络管理选项。

在usermeta表中,我更改了user-level10capabilitiesa:1:{s:13:"administrator";b:1;}

在sitemeta表中,我将自己添加到site_admins 选项

虽然这确实让我可以访问通用的wp管理页面,但我仍然无法访问任何网络管理选项(如wp、插件或主题的自动升级等)。

6 个回复
最合适的回答,由SO网友:quadium32 整理而成

所以,事实证明,这三个变化是所有需要的。结果还表明,如果任何序列化数组被错误地修改(手动修改很容易),系统只会假设您不是网络管理员。

正在更正的序列化数组site_admins option修复了该问题。

SO网友:Michel Moraes

如果你能联系上via SSH, 您还可以使用向现有用户添加超级管理员权限WP-CLI 通过运行命令wp super-admin add <username> 在服务器上。

当您在本地计算机上运行网站副本时。打开终端,全局安装WP-CLI,安装完成后,转到网站文件夹并键入:wp super-admin add <username>.

我希望这有帮助。

SO网友:locoMotion

以防序列化数组的格式meta_value 哪里meta_key=\'site_admins\'sitemeta 有人不清楚这张桌子(好像我不清楚)。

a:5:{i:0;s:5:"admin";i:1;s:9:"user12345";i:2;s:4:"user";i:3;s:5:"user1";i:4;s:8:"user1234";}

a:5 在数组的开头,表示数组有五个元素。

每个元素的长度也由s:x, 其中x是数组元素的长度。例如admin 用户名长度显示为s:5

SO网友:Gaurav

Here is the queries to create a new admin user :

INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
VALUES (\'newadmin\', MD5(\'pass123\'), \'firstname lastname\', \'[email protected]\', \'0\');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), \'wp_capabilities\', \'a:1:{s:13:"administrator";s:1:"1";}\');


INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), \'wp_user_level\', \'10\');

It will definitly help you. :)

SO网友:Tariq

我已经为这个问题挣扎了好几天,也就是说,当我更新主网站的域名时,网络管理选项从仪表板上消失了。试着到处找。最后,我终于回答了这个问题,当我阅读了Motion对sitemeta表中字段含义的解释后,我注意到superadmin的用户名长度不正确。当我解决了这个问题后,SiteAdmin菜单开始再次显示在仪表板上。感谢@quadium32提出这个问题,特别感谢@Motion解释sitemeta值的含义。顺致敬意,塔里克

SO网友:Youssef KH

另一个dude mysql查询不起作用,也不能让您成为网络超级管理员,但这一个可以!

INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`, `user_registered`) VALUES (\'newadmin\', MD5(\'password1234567890change_me\'), \'firstname lastname\', \'[email protected]\', \'0\', NOW());

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), \'wp_capabilities\', \'a:1:{s:13:"administrator";s:1:"1";}\');

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), \'wp_user_level\', \'10\');

INSERT INTO `wp_sitemeta` ( `site_id`, `meta_key`, `meta_value`  ) VALUES (1, \'site_admins\', \'a:1:{i:0;s:8:"newadmin";}\' );
现在解释一下:

超级管理员最棘手的部分是最后一个查询!

a: 3:{i:0;s:5:admin;i:1;s:9:user12345;i:2;s:10:user234567;}

“a:3”->;对于网络管理员,将有3个。接下来的文本将列出它们。“i:0”、“i:1”、“i:2”->;这是用户顺序:Admin1、Admin2、Admin3等。“s:5”、“s:9”、“s:10”->;这表示声明的用户名的字符数!这显然是作为某种安全特性添加的。如果字符数为off,则此操作将不起作用!“admin”、“irisemedia”等->;这是将与网络管理员关联的已声明用户名

了解更多信息read more here

注:change the password!

结束