点一次保存,页面顶部叠了三条“设置已更新”,颜色一条黄两条绿,关掉后刷新又出现。日志里能对上时间点,这种反而好排。

同一个提示函数在主题、插件主文件和设置类里各 add_action 了一次 admin_notices,三处都执行。注册前没有用 has_action 判断,卸载时也没 remove。这一点先确认清楚,后面就不用反复试。

if (!has_action('admin_notices', 'book_admin_notice')) {
    add_action('admin_notices', 'book_admin_notice');
}

「后台提示重复弹出」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:全局搜索 admin_notices 的注册位置 找出三处;合并成一个回调;注册前用 has_action 判断是否已存在。

结果对不对很好判断,保存一次只显示一条提示,刷新后不再重复出现。

作者 9823189