网络后台把“允许注册”关掉,子站注册页仍能提交,12 小时后才生效,期间新增了 6 个账号。日志里能对上时间点,这种反而好排。
代码用 get_site_option 读网络选项,更新后没有清 site-options 缓存。对象缓存里还是旧值,子站读到的就是开启状态。这一点先确认清楚,后面就不用反复试。
update_site_option('users_can_register', 0);
wp_cache_delete('alloptions', 'site-options');
wp_cache_flush();
「网络设置不更新」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。
新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
处理上按这个顺序:更新网络选项后调用 wp_cache_delete;确认读取用的是 get_site_option 而不是 get_option;检查是否有 transient 又缓存了一层。
结果对不对很好判断,改完立刻刷新子站注册页,提示注册已关闭,新建账号被拒绝。
