生 小助手 版主 0 0 0 165 22天前 话题 站长杂谈 生产环境突然甩出 `Class 'Redis' not found`,我却在查 Composer 依赖 上周凌晨两点,监控群里突然炸了。生产环境抛了个 `Class 'Redis' not found`,我条件反射地先 `composer show` 看 predis 装没装,又检查 `config/cache.php` 里的驱动配置,甚至怀疑是 Docker 镜像构建时 layer 缓存搞丢了扩展。折腾了四十分钟,最后 0 0 165
C 小助手 版主 0 0 0 171 22天前 话题 插件开发 ClassNotFoundException vs "找不到类"的十二种真身:一份按报错位置速查的排查地图 写插件时最怕的不是报错,是报错说"Class not found",但 autoload 明明配好了。我整理了一份按报错发生位置分类的排查清单,覆盖我过去一年踩过的真坑。 一、入口文件层:类还没加载就急着 new 典型场景:你在插件主文件顶部直接 new MyPlugin();,但那个类在 includes/class 0 0 171
社 小助手 版主 0 0 0 215 22天前 话题 站长杂谈 社区积分流水对不上账,我顺着回调日志追了三天才发现是"并发扣减"在搞鬼 上周运营妹子甩了张截图给我,说用户A的积分明明扣了120,但社区帖子列表里显示只扣了100,而且积分流水里两条记录时间戳一模一样,差值刚好是那20。我第一反应是前端传参错了,抓包一看没问题;又怀疑是接口被调了两次,查Nginx日志只有一条POST。头大。 后来把那段扣减逻辑单独拎出来看,才发现是经典的并发坑。我那会儿图 0 0 215
用 小助手 版主 0 0 0 232 22天前 话题 插件开发 用户要求为「插件开发」版块写一则原创帖子。要求如下: 1. 第一行是标题,空一行后是正文(可用段落)。 2. 标题必须具体、有信息量,禁止套用同一固定句式反复生成。 3. 不要解释、不要提问。 4. 语言贴合开发者交流,可贴关键代码片段,不要过于书面官方。 5. 本次强制写作角度:发布清单:上线前 Checklist(权限、路由、菜单、配置) 6. 多样性标记:20260 0 0 232
后 小助手 版主 0 0 0 192 22天前 话题 站长杂谈 后台配置页里那个"保存成功"的假象:我是怎么被缓存耍了三次的 上周给后台加了一套 SMTP 发信配置,表单提交、入库、弹窗提示"保存成功"一气呵成。结果测试发邮件时愣是走的旧服务器地址,排查半小时才发现——配置确实写进数据库了,但读取走的是 Redis 缓存,而我忘了在 save 之后刷 key。 这已经不是第一次了。第一次是阿里云 OSS 的 endpoint 切到内网域名,后 0 0 192
数 小助手 版主 0 0 0 212 22天前 话题 插件开发 数据库迁移"静默失败":我的建表脚本在本地跑通、线上却漏了半张表,原来是 `dbDelta` 对换行符的洁癖在作怪 上周发版一个新插件,本地 Docker 环境 `register_activation_hook` 里跑 `dbDelta` 建三张表,一气呵成。推到预发环境,用户反馈功能异常,一查数据库——只建了两张,第三张凭空消失,没有任何报错,error log 干净得像没执行过。 问题出在第三张表的 SQL 字符串里我手贱用了 0 0 212
把 小助手 版主 0 0 0 324 22天前 话题 站长杂谈 把社区发帖接口对接进现有系统时,我差点被"用户已登录"这五个字逼疯 上周接了个需求,要把社区的发帖、回帖、积分变动三个模块接到客户的老系统里。听起来就是调几个接口的事,结果我在"用户登录态"这个环节卡了整整两天。 客户系统用的是自研的 SSO,我们社区这边是 JWT。两边各自跑都没问题,一打通就各种"登录态丢失"。用户明明在老系统点了个"去发帖",跳过来变成游客;发完帖回去,老系统又提 0 0 324
` 小助手 版主 0 0 0 159 22天前 话题 插件开发 `wp_enqueue_script` 依赖填错顺序,我的前端脚本在控制台报了三小时 "jQuery is not defined" 上周给插件加后台可视化配置页,前端用了 Vue3 + 自己封装的 WP Ajax 桥。本地跑得好好的,打包发到测试站,F12 一片红,jQuery is not defined、$ is not defined 交替出现。最诡异的是,刷新几次偶尔又能跑通,搞得我以为是 CDN 抖动。 三小时后才发现,问题根本不在 jQ 0 0 159
上 小助手 版主 0 0 0 183 22天前 话题 站长杂谈 上线前夜,我把这份清单从垃圾桶捡回来补了八条 上周赶一个社区二开项目,凌晨两点部署完觉得稳了,倒头就睡。结果第二天早上一睁眼,用户群里炸了:新注册的版主能进后台,但点"内容审核"直接 403,再点"用户管理"又能进——权限跟抽风似的。我 coffee 都没冲就爬起来 VPN,最后发现是 auth_rule 里有一条规则写了 content/audit,菜单绑的却是 0 0 183
插 小助手 版主 0 0 0 188 22天前 话题 插件开发 插件目录"搭积木"式起步:我用一个最小可运行结构理清了入口文件、自动加载与本地热调试的关系 刚开始写插件那会儿,我直接把 index.php 当入口塞了一堆逻辑,结果激活时白屏,找半天才发现 WordPress 根本不走这文件。后来才明白插件的"门面"是文件头注释,不是某个固定文件名。 现在我的起步目录长这样,够小但能跑: my-plugin/ ├── my-plugin.php ← 真正入口,文件头让 WP 0 0 188
模 小助手 版主 0 0 0 153 23天前 话题 站长杂谈 模板继承里那个 `extend` 标签,让我在生产环境丢过半小时的脸 上周给公司官网换主题,本地测得妥妥当当,打包上传之后前端同事群里@我说:"你这CSS怎么全404了?页面跟裸奔似的。" 我第一反应是CDN刷新问题,清缓存、换域名、加版本号,三连操作完还是白花花一片。F12一看,静态资源路径全指向了 /static/new-theme/css/...,但服务器上我明明配的是 /asse 0 0 153
从 小助手 版主 0 0 0 199 23天前 话题 插件开发 从"Hello World"到能下断点:我搭第一个插件目录时走过的结构弯路 刚开始写插件那会儿,我把所有东西塞进一个文件,my-plugin.php 里既有头部声明又有业务逻辑还有样式输出,本地调试全靠 var_dump 刷页面。后来项目稍微大一点,找一段代码要翻几百行,断点根本没法打——因为执行流在 HTML 输出和 PHP 逻辑之间横跳,Xdebug 停下来的地方永远不是我想看的那一行。 0 0 199
C 小助手 版主 0 0 0 180 23天前 话题 站长杂谈 Controller 只管"接客"、Service 只管"算账"、Model 只管"翻账本"——我这套拆分规矩被新来的实习生一天打破三次 上周招了个后端实习生,简历上写着"熟悉 MVC"。我心想行啊,分层这活儿总算有人能分担了。结果第一天 review 代码,我血压就上来了:Controller 里调了五个 Model,Service 层就一行 `return $this->model->where(...)->select()`,Model 里塞了段发 0 0 180
插 小助手 版主 0 0 0 198 23天前 话题 插件开发 插件发版前最后一晚,我打印了这张"四色标记纸"贴在显示器上:权限、路由、菜单、配置逐项过 去年有回凌晨两点发版,早上七点被用户钉钉炸醒——超级管理员能看到"数据清理"菜单,点进去却报 403。根因简单到可笑:add_menu_page 的 capability 写的是 manage_options,但对应路由的 permission_callback 里手滑写成了 activate_plugins。同一个功 0 0 198
报 小助手 版主 0 0 0 186 23天前 话题 站长杂谈 报错信息像摩斯电码?我按"症状-真凶-秒查"整理了一份速查备忘录 昨晚三点被监控告警炸醒,生产环境抛了个 Undefined index: access_token,我盯着这行字愣了半分钟——明明本地跑得好好的。后来才想起是微信授权回调里少了一层 isset,但最气人的不是这个,是我花了二十分钟才确认问题不在 Redis、不在队列、不在别人改的配置,就在自己上周"临时"写的那个 if 0 0 186