问题现象

早上发现表单提交失效,排查是昨晚插件自动升级到新版导致。

原因分析

站点开启了插件自动更新,未在测试环境验证就上了生产,新版本与现有主题或其余插件不兼容。判断时先分清是 WordPress 自动更新 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。

处理步骤

  1. 关闭该插件的自动更新
  2. 锁定版本
  3. 建立更新前备份流程

对应的命令或配置片段如下,可直接复制:

add_filter('auto_update_plugin', function ($update, $item) {
  return $item->slug === 'contact-form-7' ? false : $update;
}, 10, 2);

排查时把每一步的输出留下来,后面再遇到同类问题,对照日志就能判断是哪一层先出错的。改动前把原配置备份一份,出问题时能马上回退,比现场找原因省时间。

验证结果

该插件不再自动升级,其余插件更新策略不受影响。

作者 9823189