在 phpMyAdmin 中添加WordPress 超级管理员用户

有时,在使用 WordPress 多站点网络时,我们可能不需要从仪表板创建超级管理员用户,而是需要借助 SQL 查询从数据库创建超级管理员用户。

在本教程中,我将为大家展示如何创建在 phpMyAdmin 中通过 SQL 查询为 WordPress 创建管理员用户。我们只需要两步就可以做到:

在 phpMyAdmin 中创建管理员用户

首先,在第一个 SQL 查询中,我们创建一个普通 WordPress 用户。

INSERT INTO wp_users ( user_login, user_pass, user_nicename, user_email, user_url, user_registered, display_name)
VALUES ( 'amos', MD5('myPasswrd'), 'amos', 'no-reply@amos.com', 'https://wpzhiku.com', '2023-04-14 09:25:20', 'Amos Lee' );

然后,我们为这个用户分配 WordPress 管理员角色

INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES ( 2, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}' )
请不要忘记将第二步中替换为您刚刚创建的实际用户 ID。
wp_users database table

等等。我们现在不是在讨论WordPress 多站点吗?为什么我们只使用普通的 WordPress 数据库wp_userswp_usermeta列?如果你有这样的疑问,推荐你阅读我的另一篇关于多站点数据库结构的教程。

让用户成为多站点网络的超级管理员

这个问题实际上有点棘手。

多站点网络中有关超级管理员的信息作为站点元存储在wp_sitemeta表中。只有一个选项。这个选项很可能已经存在。这意味着我们可以使用UPDATESQL 查询,用我们的新超级管理员替换现有的超级管理员,就像这样:

UPDATE wp_sitemeta SET site_admins='a:1:{i:0;s:9:"rudrastyh";}' WHERE site_id=1;

请注意,运行此查询后,所有现有超级管理员将不再是超级管理员!因此,您最好手动更改这个选项。但是,它的内容是什么?site_admins的值到底是什么?

很简单,它只是一个用户名序列化数组,例如Array( 'rudrastyh' ) maybeArray( 'misha', 'rudrastyh‘ ),因此您可以使用序列化()PHP 函数或任何在线工具将其转换为a:2:{i:0;s:5: "misha";i:1;s:9: "rudrastyh";}。您甚至可以自己进行格式化:

  • a:2:– 表示有 2 个元素的数组、
  • i:0;s:5: – 表示数组的第一个元素是长度为 5 的字符串,i:1;s:9: – 表示数组的第二个元素是长度为 9 的字符串。

如果你试试想找回或修改 WordPress 的管理员密码,请参考本站关于找回 WordPress 密码的文章。

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *