设置页三个必填项留空,点保存页面闪一下没有提交,也没有任何提示,用户以为按钮坏了。乍看像缓存或者权限的锅,追下去往往不是。
add_action('admin_notices', function () {
echo '<div class="notice notice-error is-dismissible"><p>名称和 ISBN 为必填项。</p></div>';
});
追下去是这么回事:校验提示用了 notice 类,主题的后台样式把它设成 display:none。脚本只阻止了提交,没有把焦点移到空字段,提示节点其实存在,只是看不见。
「后台必填提示不显示」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
具体做法是,改用 notice-error 标准类名;检查后台 CSS 是否覆盖了 notice 的显示;提交失败后 focus 第一个空字段并滚动过去。
验收就看一点,留空提交时顶部出现红框提示,光标停在第一个空字段,填完后能正常保存。
