15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
23.10.2024

如何更改 WordPress 文章的作者

在 WordPress 文章中更改作者意味着重新分配被标记为内容创建者的用户账户——这是 WordPress 的原生功能,可直接从管理后台访问,无需任何插件。此操作适用于通过块编辑器或经典编辑器处理的单篇文章,也适用于通过内置批量编辑界面同时处理多篇文章。

无论您是在引导新的编辑团队、为特邀撰稿人署名、更正错误分配的文章,还是从已删除的用户账户迁移内容,WordPress 都提供了对个人和批量级别作者归属的精细控制。本指南涵盖了所有方法,包括即使是经验丰富的网站管理员也会遇到的边缘情况。

为何作者分配的意义不仅仅是简单的署名

WordPress 中的作者元数据并非装饰性的。它以 wp_posts 的形式存储在 post_author 数据库表中,引用 wp_users 中的 ID 字段。这种关系会产生连锁影响:

  • 作者归档页面/author/username/)汇总了分配给某用户的所有文章。重新分配文章会将其从原作者的归档中移除,并添加到新作者的归档中。
  • Schema 标记——特别是由 Yoast 或 Rank Math 等 SEO 插件生成的 Person schema——从作者字段中提取数据。更改作者会更新 Google 索引的结构化数据。
  • REST API 响应author 作为顶级字段包含在内。如果您有无头前端或外部集成在使用 WordPress REST API,重新分配会立即反映出来。
  • 已删除的用户账户会使文章处于损坏状态,除非在删除前转移作者归属。WordPress 在删除用户时会提示您重新分配文章,但如果跳过了该步骤,这些文章将显示无效作者。

如果您在 VPS 托管环境中运行 WordPress,您还可以直接访问数据库,这为本指南后面介绍的命令行批量重新分配提供了途径。

前提条件:用户角色和权限

只有具有特定角色的用户才能出现在作者下拉列表中。WordPress 通过 edit_posts 权限来执行此规则。默认符合条件的角色为:

角色可被分配为作者可更改他人文章的作者
管理员
编辑
作者仅限自己的文章
投稿者
订阅者

关键细节:投稿者角色无法在下拉列表中被选为文章作者,因为投稿者缺少 publish_posts 权限。如果您需要为提交内容的特邀撰稿人署名,您必须临时将其角色提升为作者,或为其创建专用的作者账户。

方法一:更改单篇文章的作者(块编辑器)

这是使用 Gutenberg 块编辑器的 WordPress 5.0+ 网站的标准路径。

第一步——进入文章编辑器。

在 WordPress 管理后台中导航至文章 > 所有文章。将鼠标悬停在目标文章上,然后点击编辑

第二步——打开文档设置面板。

在块编辑器中,右侧边栏包含两个选项卡:文章。确保您位于文章选项卡上(在较旧的 Gutenberg 版本中有时标记为文档)。

第三步——找到作者字段。

向下滚动文章面板,直到看到作者部分。它显示当前分配的用户。如果作者部分不可见,则表示它已从面板中隐藏。

要恢复它:点击编辑器右上角的三点菜单(省略号图标),选择偏好设置,转到面板选项卡,然后启用作者

第四步——选择新作者。

点击作者下拉列表。它列出了所有具有 edit_posts 权限的用户。选择目标作者。

第五步——发布或更新。

点击更新(针对已发布的文章)或发布以保存。更改会立即写入数据库。

方法二:更改单篇文章的作者(经典编辑器)

如果您的网站使用经典编辑器插件或您使用的是旧版 WordPress:

第一步——导航至文章 > 所有文章,然后点击目标文章的编辑。

第二步——如果作者元框被隐藏,请启用它。

点击编辑屏幕右上角的显示选项。确保勾选了作者复选框。根据您的布局,作者元框将出现在内容编辑器下方或右侧边栏中。

第三步——更改作者。

在作者元框中,打开下拉列表并选择新用户。

第四步——点击更新。

方法三:通过管理界面批量重新分配作者

当您需要跨数十篇文章重新分配作者归属时——例如,在员工离职或网站合并之后——批量编辑功能无需数据库访问即可处理此问题。

第一步——转到文章 > 所有文章。

第二步——按当前作者筛选(可选但建议)。

使用文章列表顶部的所有作者下拉筛选器,仅显示您要替换的作者的文章。这可以防止意外重新分配。

第三步——选择文章。

勾选每篇目标文章旁边的复选框,或勾选标题行中的复选框以选择当前页面上的所有文章。如果文章数量超过一页,您需要逐页重复此过程,或使用下面的命令行方法。

第四步——应用批量编辑。

批量操作下拉列表中,选择编辑,然后点击应用

第五步——分配新作者。

批量编辑面板会内联展开。找到作者下拉列表并选择替换用户。

第六步——点击更新。

WordPress 会逐篇处理每篇选定的文章,因此对于大批量操作,该过程可能需要几秒钟。

方法四:WP-CLI 批量重新分配(命令行)

对于大规模管理 WordPress 的服务器管理员——特别是在独立服务器或 VPS 环境中——WP-CLI 是最高效且可脚本化的方法。它完全绕过浏览器,可在几秒钟内处理数千篇文章。

将所有文章从一个用户重新分配给另一个用户:

wp post list --post_author=OLD_USER_ID --post_type=post --format=ids | xargs wp post update --post_author=NEW_USER_ID

OLD_USER_IDNEW_USER_ID 替换为您 wp_users 表中的数字 ID。您可以通过以下方式查找:

wp user list --fields=ID,user_login,display_name

重新分配特定文章类型的文章(例如页面或自定义文章类型):

wp post list --post_author=OLD_USER_ID --post_type=page --format=ids | xargs wp post update --post_author=NEW_USER_ID

验证重新分配结果:

wp post list --post_author=NEW_USER_ID --post_type=post --fields=ID,post_title,post_status

WP-CLI 在 WordPress 自身的 API 层内运行,因此所有钩子、过滤器和缓存失效都会正确触发——这与原始 SQL 更新不同,后者完全绕过 WordPress,可能导致对象缓存过期。

方法五:直接数据库重新分配(高级)

仅当 WP-CLI 不可用且您有直接数据库访问权限时才使用此方法。在配置正确的服务器上,您可以通过命令行上的 mysql 或通过 phpMyAdmin 等工具进行连接。

通过 MySQL CLI:

UPDATE wp_posts
SET post_author = NEW_USER_ID
WHERE post_author = OLD_USER_ID
  AND post_type = 'post'
  AND post_status = 'publish';

直接 SQL 编辑的重要警告:

  • 在运行 UPDATE 语句之前,请务必备份您的数据库。
  • 操作后刷新 WordPress 对象缓存(通过 WP-CLI 执行 wp cache flush,或重启您的缓存层)。
  • 如果您使用持久页面缓存(例如 Redis、Memcached 或缓存插件),缓存页面将继续显示旧作者,直到缓存条目过期或被清除。
  • 此方法不会触发 WordPress 操作钩子(如 save_post),因此对作者更改有响应的插件(SEO 插件、审计日志)将不会收到通知。

作者更改方法比较

方法最适用于需要服务器访问权限处理大量文章触发 WP 钩子
块编辑器(GUI)单篇文章,快速更改
经典编辑器(GUI)单篇文章,旧版设置
批量编辑(GUI)数十篇文章,无 CLI 访问部分
WP-CLI批量重新分配,自动化是(SSH)
直接 SQL紧急情况,无 WP 访问是(DB 访问)

SEO 和结构化数据影响

重新分配文章作者会产生可衡量的 SEO 影响,这一点经常被低估:

作者归档 URL 会发生变化。如果原作者的归档(/author/old-username/)已被索引并获得流量,这些页面将失去被重新分配的文章。如果旧作者账户即将被删除,请设置从旧作者归档到相关分类或新作者归档的 301 重定向。

E-E-A-T 信号会发生转移。Google 的质量评估指南对内容创作者所展示的专业知识和权威性给予了相当大的权重。如果原作者拥有成熟的署名、已发布的简介和外部提及,将其文章转移到没有历史记录的新账户可能会削弱感知权威性——尤其是在健康、金融或法律内容等 YMYL(您的金钱或您的生活)领域。

必须审计 Schema 标记。批量重新分配后,对受影响的 URL 运行结构化数据测试,以确认 JSON-LD 输出中的 author.nameauthor.url 反映的是新用户的个人资料数据,而非缓存或过期的值。

规范信号不受影响。文章的规范 URL 在作者更改时不会改变,因此重新分配本身不存在重复内容风险。

常见陷阱和边缘情况

作者下拉列表为空或缺少某个用户。

当目标用户的角色缺少 edit_posts 时会发生这种情况。临时将用户提升为作者角色,分配文章,然后根据需要恢复角色。

分配给已删除用户的文章显示”未知”或作者链接损坏。

当用户在未重新分配的情况下被删除时,WordPress 会使文章成为孤立状态。通过 WP-CLI 修复此问题:

wp post list --post_author=0 --format=ids | xargs wp post update --post_author=NEW_USER_ID

post_author 值为 0 表示没有有效用户引用的孤立文章。

多站点网络需要按站点上下文操作。

在 WordPress 多站点安装中,用户必须是特定子站点的成员,才能出现在该站点的作者下拉列表中。网络管理员账户不会自动作为可用作者出现在每个子站点上。请先通过用户 > 添加现有用户将用户添加到子站点。

更改已计划(未来)文章的作者。

更改状态为 post_status = 'future' 的文章的作者与已发布文章的操作完全相同。文章发布时将署名新作者。

缓存层提供过期的作者数据。

如果您的网站使用全页缓存——这在托管于带 cPanel 的 VPS 或类似托管环境的高流量网站上很常见——请在重新分配后清除受影响 URL 的缓存。否则,访问者将看到旧的作者名称,直到缓存条目过期。

正确为特邀撰稿人署名

为特邀撰稿人分配作者归属时,标准做法是:

  1. 创建一个具有作者角色的新 WordPress 用户账户。
  2. 完善其个人资料:显示名称、个人简介,以及可选的通过 Gravatar 上传的个人头像。
  3. 将文章分配给其账户。
  4. 如果该特邀撰稿人不会提交未来的内容,您可以在分配后将其角色降级为订阅者——文章将保留其作者归属,但他们将失去创建新文章的能力。

这种方法可以保持您的 wp_users 表整洁,并确保作者简介框(如果您的主题显示)显示准确的撰稿人信息。这也意味着特邀撰稿人的文章会出现在其作者归档中,如果您允许的话,这对撰稿人来说可以是一个有用的反向链接。

对于运行多撰稿人编辑工作流的网站,将此与配置完善的邮件托管设置相结合,可确保每位撰稿人通过专业地址而非个人地址接收通知、编辑反馈和评论提醒。

实用决策矩阵

在开始之前,使用此清单选择正确的方法:

  • 更改一篇文章,使用 Gutenberg?使用块编辑器中文章面板的作者字段。
  • 更改一篇文章,使用经典编辑器?通过显示选项启用作者,使用元框下拉列表。
  • 更改 2–50 篇文章,无服务器访问权限?使用批量编辑并先通过作者筛选来隔离正确的文章。
  • 更改 50 篇以上文章或自动化该过程?使用 WP-CLI——它更快、可脚本化且对钩子安全。
  • 无 WordPress 访问权限但有数据库访问权限?使用有针对性的 SQL UPDATE,然后手动刷新所有缓存。
  • 重新分配已删除用户的文章?通过 WP-CLI 查询 post_author = 0,并在一条命令中完成重新分配。
  • 在多站点网络上?在尝试重新分配之前,确认目标用户是特定子站点的成员。
  • 担心 SEO 影响?审计作者归档重定向,刷新结构化数据缓存,并在重新分配后验证 JSON-LD 输出。

常见问题

投稿者可以被设置为已发布文章的作者吗?

不可以。作者下拉列表仅列出具有 edit_posts 权限的用户。默认情况下,投稿者缺少此权限。要为投稿者署名,可以临时将其角色升级为作者,分配文章,然后恢复——或者在自定义字段或作者简介块中显示其姓名,而不更改系统级别的 post_author 字段。

更改作者会影响文章的发布日期或 URL 吗?

不会。永久链接和发布时间戳与 post_author 独立存储。重新分配作者归属不会改变文章的 URL 结构或其在时间顺序归档中的位置。

更改作者会破坏我的 SEO 排名吗?

不会直接影响。文章的 URL、内容和入站链接保持不变。但是,如果您的 SEO 插件生成与作者绑定的 Person schema,结构化数据将更新以反映新用户。在对 E-E-A-T 敏感的领域,将署名从知名专家更改为未知账户可能会在人工审核期间影响感知质量。

当原作者账户已被删除时,如何重新分配文章?

已删除用户的文章在数据库中的 post_author = 0 值为特定值。使用 WP-CLI 识别并重新分配它们:执行 wp post list --post_author=0 --format=ids,然后执行以新用户 ID 为目标的批量更新命令。

有没有办法在不创建 WordPress 用户账户的情况下显示特邀作者的姓名?

有。Co-Authors Plus 等插件允许您定义”特邀作者”个人资料——本质上是自定义文章类型条目——可以链接到文章而无需 wp_users 条目。这是高产量出版网站的首选方法,这类网站会展示一次性撰稿人,并希望避免用户表过度膨胀。

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用