上个月在插件文件里加的一段判断,昨天自动更新后整段不见了,行为退回原版,日志里没有任何提示。手上只记得更新前的版本号,改动内容已经记不全。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,更新是整包替换,插件目录里的文件按新压缩包重写,手工改动不会保留。要改行为得走钩子、过滤器或者独立的小插件,把逻辑放在插件目录之外。
「插件更新覆盖修改」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
add_filter("abc_sync_batch_size", function ($size) {
return 50; // 覆盖原插件默认的 20
});
// 独立插件目录:wp-content/plugins/abc-sync-tweak/
具体做法是,把要改的逻辑抽成独立小插件 用钩子挂到原插件上;确认原插件在那个位置提供了可用的过滤器 没有就提一个;更新前把插件目录打一份压缩包 留作逐行对照。
最后用这个标准收尾,插件再次更新后,自定义的批处理条数仍是 50,行为没有回退。
