You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程在WordPress文章修订版中设置当前用户为修改者?

解决WordPress批量更新文章时修订记录显示正确操作者的问题

问题根源在于你运行脚本的环境中,WordPress的当前用户是匿名用户(ID 0),所以修订记录会默认关联到这个用户。而post_author参数确实会修改文章的原始作者,这不是你需要的效果。

正确的做法是在更新文章前,临时切换到指定的操作用户,让WordPress将修订记录关联到该用户,且不会改动文章的原始作者:

  1. 确定你要记录的操作用户ID(比如管理员用户ID为1)
  2. (可选)保存当前用户ID,后续需要恢复原有状态时使用
  3. 使用wp_set_current_user()切换到目标用户
  4. 执行wp_update_post()更新文章
  5. (可选)如果是在已有登录用户的环境下,切换回原来的用户

代码示例

// 定义要作为修订操作者的用户ID
$operator_user_id = 1;

// 保存当前用户ID(如果需要恢复原有状态)
$original_user_id = get_current_user_id();

// 切换到目标用户
wp_set_current_user($operator_user_id);

// 准备更新参数(只传ID和post_content,不要传post_author)
$update_args = array(
    'ID' => $post_id,
    'post_content' => '更新后的文章内容'
);

// 执行更新
wp_update_post($update_args);

// (可选)切换回原来的用户
wp_set_current_user($original_user_id);

关键说明

  • wp_set_current_user()会临时改变WordPress的当前上下文用户,此时执行wp_update_post()生成的修订记录,其修改者会自动关联到这个用户,不会改动文章的原始作者。
  • 确保指定的$operator_user_id对应的用户存在,并且拥有编辑该文章的权限,否则可能会导致更新失败或权限错误。
  • 如果你的脚本是在CLI环境或定时任务中运行(原本就没有登录用户),可以省略切换回原用户的步骤。

内容的提问来源于stack exchange,提问作者vespino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:39:56