15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
23.10.2024
1 +1

如何向WordPress添加新用户:角色、权限和用户管理完整指南

WordPress用户管理是任何多作者或团队驱动网站中最重要的管理任务之一。错误地添加新用户——角色错误、密码策略薄弱、无电子邮件验证——可能会使您的网站面临权限提升、内容破坏或未经授权的插件安装风险。本指南以专业的技术精度逐步介绍整个流程,帮助您将管理规范的WordPress安装与存在漏洞的安装区分开来。

直接解答:要在WordPress中添加新用户,请在管理员仪表板中导航至用户 > 添加新用户,填写用户名、电子邮件和密码字段,从内置角色层级中分配一个角色,然后点击添加新用户。如果勾选了相应选项,用户将收到通知邮件。整个过程不到两分钟——但选择正确的角色并执行强凭据策略需要审慎判断。

为什么用户管理架构至关重要

WordPress采用基于角色的访问控制(RBAC)模型。平台上的每项功能——发布文章、安装插件、管理选项——都是一个独立的权限标志。角色只是这些权限标志的命名集合。当您为用户分配角色时,您实际上是在同时授予或拒绝数十项单独的权限。

这在实际操作中非常重要,原因如下:

  • 权限过高的用户是导致意外或恶意破坏网站的主要原因。
  • 权限不足的用户会造成工作流程瓶颈,迫使管理员手动发布每一篇内容。
  • 孤立账户——不再需要访问权限的用户——是持续存在的攻击面,在共享环境中尤为突出。

如果您的WordPress网站运行在VPS托管环境中,您还需要额外负责将WordPress级别的用户权限与服务器级别的访问控制对齐。WordPress的管理员角色不授予SSH或数据库访问权限,但攻击者一旦入侵管理员账户,就可以上传能够实现此类访问的恶意插件。

第一步:访问WordPress管理员仪表板

导航至您网站的登录页面:

https://yourdomain.com/wp-admin/

使用您的管理员凭据进行身份验证。如果您通过Wordfence或Google Authenticator等插件启用了双因素身份验证(2FA),请在继续操作前完成该验证。

安全提示:如果您在自己控制的服务器上管理WordPress,请考虑在Web服务器层面通过IP地址限制/wp-admin/的访问。在Nginx上,这只需一个简单的allow/deny块;在Apache上,则使用.htaccess指令。这是一种纵深防御措施,完全在WordPress自身身份验证层之外运行。

第二步:导航至用户 > 添加新用户

在左侧导航面板中,将鼠标悬停在用户上。弹出的子菜单会显示两个选项:所有用户添加新用户。点击添加新用户

您也可以通过以下方式直接访问此页面:

https://yourdomain.com/wp-admin/user-new.php

对于频繁添加用户的网站管理员来说,将此URL加入书签非常实用。

第三步:填写新用户表单

添加新用户表单包含多个字段。部分字段为必填项,其他字段为可选项,但在实际操作中同样重要。

用户名

存储在wp_users中的user_login字段。此值为永久性——WordPress没有提供原生UI来在创建后重命名用户。请选择满足以下条件的用户名:

  • 不暴露用户角色(避免使用admineditor1webmaster)。
  • 与网站主管理员账户的用户名不同,因为主管理员账户是常见的暴力破解目标。
  • 遵循一致的内部命名规范(例如firstname.lastnamef.lastname)。

如果您之后需要重命名用户,必须使用插件(Username Changer)或直接执行数据库查询:

UPDATE wp_users SET user_login = 'new_username' WHERE user_login = 'old_username';

电子邮件地址

WordPress会将欢迎通知和所有系统邮件发送至此地址。它也是账户恢复机制。请确保该地址:

  • 是用户积极监控的可送达邮箱。
  • 在您的wp_users表中唯一——WordPress在应用层面强制执行此要求。

如果您的组织运营自己的邮件基础设施,请考虑将WordPress与专用的电子邮件托管解决方案配合使用,以确保可靠的事务性邮件投递,避免欢迎邮件被归入垃圾邮件。

名字、姓氏、网站

这些字段会填充wp_usermeta,完全为可选项。它们会显示在作者署名和个人资料页面中。对于内部团队成员,填写这些信息可提高所有用户视图中审计记录的可读性。

密码

WordPress使用wp_generate_password()自动生成一个加密强度高的密码。默认熵值较高。您有两种选择:

  • 接受生成的密码,通过欢迎邮件将其发送给用户,用户应在首次登录时更改密码。
  • 设置自定义密码,点击显示密码并输入替换密码。如果自定义密码弱于WordPress的强度启发式标准,将出现一个确认复选框,明确提示您。

请勿为新账户设置简单密码,即使是临时密码也不行。WordPress核心没有”临时密码”强制机制——创建时设置的弱密码将一直保持弱状态,直到用户更改为止。如需强制执行密码策略,请使用Password Policy Manager等插件或实施服务器端规则。

发送用户通知

勾选后,WordPress将发送一封new_user_notification邮件,其中包含登录URL和生成的密码(或密码重置链接,具体取决于您的WordPress版本和配置)。除非您正在批量配置账户并计划通过安全的带外渠道传达凭据,否则请保持勾选此选项。

第四步:分配正确的用户角色

这是整个流程中风险最高的决策。WordPress的五个内置角色构成严格的权限层级。

WordPress用户角色对比表

角色发布自己的文章编辑他人文章管理插件/主题管理用户访问设置
管理员
编辑
作者
投稿者否(仅草稿)
订阅者

角色定义与实际分配指南

管理员

拥有manage_optionsinstall_pluginsedit_themesdelete_users以及约60个额外的权限标志。将此角色授予受信任的技术负责人以外的任何人都是重大安全风险。在生产网站上,管理员账户数量应保持在最低必要数量——通常为一到两个。

编辑

适合内容管理员、主编和需要跨作者监督权限的资深撰稿人。编辑可以发布、编辑和删除任何文章或页面,无论作者是谁。他们无法操作插件、主题或网站设置。该角色在编辑权限和系统安全之间取得了实际的平衡。

作者

适合全面负责自己内容的常规撰稿人。作者可以上传媒体文件、发布自己的文章并删除自己已发布的内容。他们无法查看其他用户的草稿。一个关键细节:作者可以删除自己已发布的文章,这有时会让期望已发布内容不可更改的网站所有者感到意外。

投稿者

对于新用户或不受信任的撰稿人来说最安全的角色。投稿者可以起草文章并提交审核,但发布按钮会被替换为提交审核按钮。他们无法直接向媒体库上传图片——这是许多网站所有者容易忽视的重要工作流程摩擦点。如果您的编辑工作流程依赖于图片丰富的内容,投稿者将需要编辑来处理媒体上传,或者您需要使用插件来扩展其媒体功能。

订阅者

仅授予访问WordPress仪表板以进行个人资料管理的权限。适用于会员网站、付费内容平台或需要注册才能评论或访问受限页面的论坛。订阅者不产生任何内容,也没有任何管理操作面。

自定义角色与权限扩展

五个内置角色涵盖了大多数使用场景,但复杂的网站通常需要精细化定制。WordPress API中的add_role()add_cap()函数允许开发者以编程方式创建自定义角色或扩充现有角色。MembersUser Role Editor等插件通过UI界面提供此功能,无需编写代码。

通过functions.php向编辑角色添加自定义权限的示例:

function add_custom_editor_caps() {
    $role = get_role( 'editor' );
    $role->add_cap( 'manage_categories' );
}
add_action( 'admin_init', 'add_custom_editor_caps' );

第五步:提交表单

填写完所有字段并选择角色后,点击表单底部的添加新用户按钮。WordPress将:

  1. wp_users中插入新行。
  2. wp_usermeta中填充相应的元数据(角色、名字、姓氏等)。
  3. 如果勾选了该选项,则发送通知邮件。
  4. 跳转至所有用户页面并显示成功提示。

如果收到提示用户名或电子邮件已存在的错误,说明WordPress在wp_users中发现了冲突。请使用唯一标识符或查询数据库以排查重复账户。

第六步:验证欢迎邮件和首次登录

账户创建后,确认用户已收到通知邮件。常见的失败原因包括:

  • WordPress从wordpress@yourdomain.com地址发送邮件,该地址没有有效的SPF或DKIM记录,导致邮件被过滤为垃圾邮件。
  • 共享托管环境中PHP的mail()函数受到限制或被屏蔽。

有效的解决方案是配置WordPress通过经过身份验证的中继使用SMTP发送邮件。安装WP Mail SMTP等插件,并将其连接到事务性邮件服务(SendGrid、Mailgun、Postmark)或您自己的SMTP服务器。如果您的托管环境支持,将其与适当的SSL证书配置配合使用,可确保SMTP连接加密且域名身份可验证。

管理现有用户

导航至用户 > 所有用户查看完整的账户清单。此页面支持:

  • 批量角色更改——通过用户列表上方的下拉菜单选择多个用户,选择新角色并应用。
  • 单独编辑个人资料——点击用户名打开完整的个人资料编辑器,可在其中更改角色、重置密码或更新联系信息。
  • 删除账户——WordPress会提示您选择删除该用户的内容或将其重新分配给另一个用户。请始终选择将所有内容归属于并选择一个活跃账户。删除用户时删除内容是不可逆的。
  • 按角色筛选——表格顶部的角色链接(全部 | 管理员 | 编辑 | 作者 | 投稿者 | 订阅者)可让您独立审计每个层级。

审计与强化用户账户

除核心UI之外,生产环境的WordPress安装还应实施以下措施:

  • 使用WP 2FA或Wordfence Login Security等插件,为所有管理员和编辑账户强制启用2FA
  • 使用WP Activity Log等插件记录用户活动,维护登录、角色变更和内容修改的审计记录。
  • 如果存在默认的admin用户名,请禁用它。通过前面介绍的数据库查询重命名,或创建新的管理员账户并删除admin账户。
  • 使用auth_cookie_expiration过滤器设置会话过期时间,限制已认证会话在无需重新认证的情况下持续的时长。
  • 每季度审查用户账户。休眠账户——尤其是具有作者或编辑角色的账户——应予以停用或删除。

如果您的WordPress安装运行在独立服务器上,您可以完全控制底层MySQL实例。定期直接查询wp_userswp_usermeta,将活跃的WordPress账户与预期的团队名单进行交叉比对:

SELECT u.user_login, u.user_email, m.meta_value AS role
FROM wp_users u
JOIN wp_usermeta m ON u.ID = m.user_id
WHERE m.meta_key = 'wp_capabilities'
ORDER BY u.user_registered DESC;

此查询会列出每个账户及其分配的角色,便于识别在大型用户列表中WordPress UI可能遮蔽的孤立账户或权限过高的账户。

以编程方式添加用户

对于批量配置——例如一次性入职20名撰稿人——WordPress管理员UI并不实用。请通过WP-CLI使用wp_create_user()wp_insert_user()

wp user create jane.doe jane.doe@example.com --role=author --send-email

WP-CLI的user create命令接受与UI表单相同的所有字段,并支持--porcelain输出以便于脚本编写。要从CSV批量导入:

wp user import-csv /path/to/users.csv --send-email

这种方法在预装了WP-CLI且可通过终端访问的带cPanel的VPS环境中尤为高效。

技术决策矩阵:选择正确的角色

当您不确定应分配哪个角色时,请参考此矩阵:

用户类型推荐角色主要原因
共同所有者/技术合作伙伴管理员需要完整的网站控制权
主编/内容总监编辑跨作者监督权限,无系统访问权限
全职撰稿人(有经验)作者对自己内容的完全所有权
自由撰稿人/新投稿者投稿者草稿需经编辑审核后方可发布
注册会员/评论者订阅者不创建内容,仅管理个人资料
开发者(临时访问)管理员(限时)需要插件/主题访问权限;项目结束后撤销
SEO专员编辑或自定义角色需要跨文章编辑元数据;无系统访问权限

添加新用户前的实用检查清单

  • 确认用户名遵循您的命名规范且不暴露角色信息。
  • 验证电子邮件地址可送达且属于预期人员。
  • 选择最低必要角色——不要为了方便而默认选择管理员。
  • 确保您的WordPress安装能够可靠地发送邮件(已配置SMTP,已设置SPF/DKIM记录)。
  • 如果用户是管理员,请在授予生产环境访问权限前强制启用2FA。
  • 安排审查日期,定期审核账户是否仍有必要保留。
  • 在服务器管理的安装中,确认WordPress级别的访问权限不会无意中与服务器级别的凭据重叠。

常见问题

账户创建后可以更改用户角色吗?

可以。前往用户 > 所有用户,点击用户名,滚动至角色下拉菜单,选择新角色,然后点击更新用户。该更改将在该用户下次加载页面时立即生效。

删除用户账户后,其内容会怎样?

WordPress会提示您选择永久删除与该用户关联的所有内容,或将其重新分配给另一个现有用户。重新分配几乎始终是正确的选择。删除操作不可逆,无法通过UI撤销。

为什么我的用户菜单中缺少”添加新用户”选项?

这通常意味着您的账户没有create_users权限,该权限默认仅限管理员角色拥有。如果您以管理员身份登录但仍看不到该选项,可能是某个插件或functions.php自定义移除了该权限。请在测试代码片段中使用current_user_can( 'create_users' )进行检查,或通过数据库检查角色的权限。

投稿者可以在文章中上传图片吗?

默认情况下不行。upload_files权限未包含在投稿者角色中。您可以在主题的functions.php中使用$role->add_cap( 'upload_files' )单独授予该权限,或使用角色管理插件。请注意,在高产量投稿者设置中,不受限制的媒体上传可能会消耗大量服务器存储空间。

如何在不给予仪表板访问权限的情况下向WordPress添加用户?

分配订阅者角色,该角色将用户限制在仪表板内的个人资料页面。对于完全的前端访问(例如会员网站),请使用MemberPress或Restrict Content Pro等插件,这些插件完全绕过标准仪表板,呈现自定义的前端账户界面。

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用