迅睿 CMS 插件与模板的交互:控制器如何把数据传给视图
写了插件、改了模板,但页面上的数据没变?多数时候是数据传递的环节没接上。标准的传递方式// 控制器 public function index() { $data = [ 'list' => $list,
以下是带有「插件开发」标签的全部文章
写了插件、改了模板,但页面上的数据没变?多数时候是数据传递的环节没接上。标准的传递方式// 控制器 public function index() { $data = [ 'list' => $list,
插件被删除时到底该留下什么、清掉什么,这个问题不少开发者想的不够细。两种“删除”要分清动作触发钩子代码是否还在停用register_deactivation_hook在删除uninstall.php不在停用是可逆的,删数据绝对不能放在停用钩
装了插件之后后台打不开、前台白屏,这类问题的排查有固定路径,慌乱重装是最差的选择。第一步:确认是不是插件引起的把 zb_users/plugin/ 下所有插件目录改名,加个 _bak 后缀。再刷新后台,能打开就说明是插件问题。这一步不要动数
两个系统都有钩子,但设计哲学的差异会直接影响插件怎么写、以及迁移时有多痛。命名与定位WP 用 add_action / add_filter 两个函数区分“执行动作”和“过滤数据”。Z-Blog 统称 Filter,靠命名约定(带 Core
做一个插件设置页有两条路,选错了会多写几百行代码。路线一:Settings API(推荐)适合“若干个输入框/开关/下拉”这种常规配置。好处是提交、校验、CSRF、提示全部自动处理。add_action('admin_init', func
短代码看着简单,但写法不对会引发编辑器内容错位,甚至让区块编辑器显示“无效内容”。正确姿势:return,不是 echoadd_shortcode('year', function(){ return date('Y'); });短
做了 i18n 却发现翻译不生效,八成是加载时机写错了。标准的三步// 1. 所有字符串用翻译函数包裹 __('Hello', 'my-plugin'); _e('Settings', 'my-plugin'); // 2. 在 plug
插件在本地跑通不等于能发。下面这些点是实际踩过的坑,发布前过一遍。文件名与结构目录名与 plugin.xml 里的 id 必须一致,大小写也要一致include.php 第一行要有 if (!defined('ZC_IN_ZBP')) ex
register_post_type() 参数有二十多个,能跑起来只需要几个,但要跑得对,下面这几项不能省。1. labels不写 labels,后台菜单会显示成“文章”加复数形式,用户看不懂。至少要给出 name、singular_nam
迅睿的扩展方式和 Z-Blog、WP 都不太一样,它的钩子体系围绕内容模块和表单事件展开。理解这套结构,插件才写得下去。先搞清目录结构/dayrui/App/你的应用/ ├── Config/ │ ├── App.php