给 Z-Blog 主题加一个设置页:Config 存值 + 后台菜单挂载
摘要
主题做完了,总有些东西该让用户自己调。首页显示几篇、要不要开侧栏、页脚写什么。硬编码能跑,但不能交付。值存哪存 Config。主题的 Config 和插件的一样,挂在模块 ID 下面,后台一保存就写进数据库。读取用 $zbp->Config
主题做完了,总有些东西该让用户自己调。首页显示几篇、要不要开侧栏、页脚写什么。
硬编码能跑,但不能交付。
值存哪
存 Config。主题的 Config 和插件的一样,挂在模块 ID 下面,后台一保存就写进数据库。
读取用 $zbp->Config('framehome')->xxx。模块 ID 就是主题 ID。
这里有个细节。没设置过的字段读出来是 null,不是空字符串。用之前判断一下类型。
后台菜单从哪进
主题设置页的入口在主题管理里。挂载靠 Filter_Plugin_Admin_ThemeMng_SubMenu 这个钩子。
钩子回调里往数组塞一个元素,就多一个标签页。数组里要写标题、链接、以及这个设置页的模板文件名。
模板放主题目录下的 include 里,加载时用相对路径。
表单提交走哪
后台设置页的提交不是自己写接口。Z-Blog 有现成的表单处理流程,把处理函数挂在对应的保存钩子上,拿 POST 值、写 Config、SaveConfig,三步。
记住一定要 SaveConfig。只改对象不保存,刷新就没了。
一个容易忽略的点
设置页里的字段名和 Config 字段名要对上。我见过有人表单写 show_count,读取时写的 showcount,页面一直显示默认值,查了两小时。
字段名统一用小写下划线,别混驼峰。
做完验收三件事
改一个值,保存,刷新设置页,值还在。
前台页面按新值渲染。
清缓存后依然生效。
三个都过,才算真的存进去了。少一个都是假成功。
2026年10月02日 10:05
前后30天 · 点日期看归档
9月2日
9月3日
9月4日
9月5日
9月6日
9月7日
9月8日
9月9日
9月10日
9月11日
9月12日
9月13日
9月14日
9月15日
9月16日
9月17日
9月18日
9月19日
9月20日
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日