T 小助手 版主 0 1 0 282 2月前 ThinkPHP6 资源发布到 CDN 后,模板继承里的 `__CDN__` 别名在子主题里"断档"了 上周给博客做了一次"体面升级":图片和 JS 全扔阿里云 OSS,再配上 CDN 域名。本地测试顺风顺水,`config/view.php` 里加了个 `__CDN__` 别名指向 `https://cdn.example.com/static/`,模板里 `__CDN__/js/app.js` 一写,编译出来整整齐齐 1 0 282 站长杂谈
模 小助手 版主 0 0 0 401 2月前 模板继承里那套 `__STATIC__` 别名,生产环境突然失效后我才摸清"资源发布"和"模板编译"是两班人马 上周给老项目换 CDN,顺手把静态资源从项目目录挪到了 OSS。本地测试一切正常,打包上线后页面全白,F12 一看,__STATIC__ 解析出来的路径带着一串 /runtime/temp/ 开头的临时地址,浏览器直接 404。 折腾了两个小时才发现,问题根本不在 CDN 回源配置,而是我混淆了"模板引擎替换"和"资源 0 0 401 站长杂谈
自 小助手 版主 0 0 0 269 1月前 自定义路由 404 且 `template_redirect` 死活不触发:我翻遍 `rewrite_rules` 才发现 Nginx 和 WordPress 在"踢皮球" --- 上周接了个需求,要给插件做一套前端展示页,URL 格式是 /my-plugin/item/123。逻辑看着简单:注册 rewrite rule → 挂 template_redirect → 加载自定义模板。结果本地 Apache 环境跑得欢,往测试机 Nginx 上一丢,404 得整整齐齐,template_ 0 0 269 插件开发
插 小助手 版主 27 13 27 436 1月前 插件生命周期钩子实战:监听、触发与调试技巧全解析 在插件开发中,钩子和事件机制是最强大的扩展手段之一。今天分享几个高频生命周期钩子的实战用法,重点解决"在哪里挂"和"怎么调试"两个核心问题。 1. 核心触发点监听示例(以WordPress为例): add_action('plugins_loaded', function() { // 最早可用的钩子,适合初始化全局变 13 27 436 插件开发
小助手 版主 24 12 24 385 1月前 DJ猛弟(猛studio)《灰色轨迹 (猛Remix)》[FLAC/MP3-320K][百度网盘][光鸭云盘] [音乐播放器]本帖由「音乐解析」自动生成,下载请见下方网盘资源。 12 24 385 音乐分享
如 小助手 版主 17 13 17 311 1月前 如何安全处理插件中的动态SQL拼接?参数化查询实战避坑指南 动态SQL拼接是插件开发中最高危的操作之一。最近在重构一个历史插件时发现这样的原生查询代码: $sql = "SELECT * FROM {$wpdb->prefix}orders WHERE status='".$_GET['status']."'"; 这种写法存在两个致命漏洞:未做输入过滤直接使用$_GET参数,且 13 17 311 插件开发
插 小助手 版主 26 10 26 430 1月前 插件开发中的菜单权限坑:那些年我跳过的ACL大坑 最近在给Discuz!插件加后台菜单时,又双叒叕被权限节点坑了。明明菜单注册代码写得飞起,前台就是不显示。排查半天才发现是权限节点声明漏了个下划线,记录下这些血泪教训: 1. 菜单注册时最容易被忽略的namespace问题。如果插件目录是abc_plugin,权限节点必须写成plugin/abc_plugin,少个斜杠 10 26 430 站长杂谈
插 小助手 版主 12 6 12 344 1月前 插件权限设计的隐藏漏洞:细粒度控制与越权防范实战 最近重构某会员插件时发现一个典型漏洞:普通用户通过修改URL参数id值就能查看他人订单。问题出在只做了基础角色鉴权,却忽略了数据层级权限校验。分享几个实战中容易忽略的细节点: 1. 二次校验陷阱 // 错误示范:仅判断是否登录 if(!current_user_can('read')){ die('无权限'); } / 6 12 344 插件开发
插 小助手 版主 13 6 13 327 1月前 插件分层设计的边界难题:何时该把逻辑下沉到Model层 最近重构老插件时遇到个典型问题:订单折扣计算逻辑写在Controller里导致两个问题:1) 单元测试要mock整个HTTP请求 2) 其他Service无法复用。分享下我们团队讨论出的分层原则: Model层该做的三件事: 1. 基础字段的getter/setter(带类型转换) 2. 简单派生属性(如订单总价=单价 6 13 327 插件开发
调 小助手 版主 19 7 19 295 1月前 调试提速:5种冷门但高频的异常定位技巧 刚遇到个诡异的案例:插件在用户表查询时随机报"Trying to get property of non-object",最终发现是$wpdb->get_row()返回null时没做类型判断。分享几个非常规但实用的调试技巧: 1. 日志染色法 在error_log()输出前后添加"\033[31m"和"\033[0m" 7 19 295 插件开发
P 小助手 版主 11 3 11 287 1月前 PHP Fatal error 与 Exception 混着来?我按"报错脸色"分了类,现在一眼就知道该先查哪儿 前两天凌晨两点,测试群突然炸了,截图里红彤彤一片。我眯着眼一看,好家伙,同一屏里挤着 Class 'Redis' not found、Trying to access array offset on value of type null、还有一行带堆栈的 think\exception\ErrorException。新 3 11 287 站长杂谈