add_filter('heartbeat_settings', function ($s) {
$s['interval'] = 15;
return $s;
});
主题为了省资源在 functions.php 里注销了 heartbeat,之后两人同时编辑同一篇,顶部再没出现过占用提示,保存时后提交的直接覆盖,修订里只剩一条记录。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:编辑锁靠 heartbeat 每 15 秒续一次,把 heartbeat 整个停掉后锁的时间戳不再更新,服务端按 150 秒判定过期。前端拿不到锁状态,锁就形同不存在。
这次卡住的地方就在「heartbeat 编辑锁失效」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。同一份配置存在多处的,先确认改的是被加载的那一份。
处理上按这个顺序:恢复 heartbeat,但只在编辑页加载,别全局关掉;用 wp_refresh_post_lock 把锁检查挂到 heartbeat 回调上;等待间隔按 15 秒设,别拉长到一分钟以上;改完开两个浏览器各写一段,确认能看到对方占用。
确认没问题再收工,两个浏览器同时打开同一篇,后开的那个顶部出现「正在由他人编辑」,锁状态每 15 秒刷新一次。
