有时,在使用 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;}' )
等等。我们现在不是在讨论WordPress 多站点吗?为什么我们只使用普通的 WordPress 数据库wp_users
和wp_usermeta
列?如果你有这样的疑问,推荐你阅读我的另一篇关于多站点数据库结构的教程。
让用户成为多站点网络的超级管理员
这个问题实际上有点棘手。
多站点网络中有关超级管理员的信息作为站点元存储在wp_sitemeta
表中。只有一个选项。这个选项很可能已经存在。这意味着我们可以使用UPDATE
SQL 查询,用我们的新超级管理员替换现有的超级管理员,就像这样:
UPDATE wp_sitemeta SET site_admins='a:1:{i:0;s:9:"rudrastyh";}' WHERE site_id=1;
请注意,运行此查询后,所有现有超级管理员将不再是超级管理员!因此,您最好手动更改这个选项。但是,它的内容是什么?site_admins
的值到底是什么?
很简单,它只是一个用户名序列化数组,例如Array( 'rudrastyh' )
或Array( '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 密码的文章。