主题设置结构地图
按 zibll_options 的一级分组和子 section 梳理子比主题后台设置结构,帮助定位字段应该放在哪里、前台应该从哪里读取。
为什么需要结构地图
inc/options/admin-options.php 超过一万行,商城和论坛还在独立 admin 文件里继续追加 section。只靠搜索字段标题,很容易把字段放错业务域。
子比主题设置页的结构规律是:
zibll_options
├─ 一级 section:业务域,只负责左侧菜单分组
└─ 子 section:具体设置页,真正包含 fields新增或排查字段时先确定业务域,再确定子 section,最后查字段 id。
一级业务域
zib_csf_admin_options() 先注册这些一级 section:
| id | 标题 | 主要负责 |
|---|---|---|
basic | 全局&功能 | Logo、SEO、懒加载、布局、搜索、邮箱、自定义代码 |
page | 页面&显示 | 顶部、页脚、首页、分类、标签、专题、用户主页、其他页面 |
post | 文章&列表 | 列表、缩略图、文章页、筛选、文章功能、评论、投稿 |
cap | 功能&权限 | 基础权限和站点行为限制 |
user | 用户&互动 | 注册登录、第三方登录、消息、认证、徽章、等级、签到、短信 |
pay | 支付&付费 | 知识付费、余额、VIP、分成、返佣、收款接口 |
shop | 商城&商品 | 实物商城、商品详情、商品参数、物流、售后评价 |
forum | 社区&论坛 | 论坛首页、版块、帖子、话题、权限和提问回答 |
over | 扩展&增强 | 系统工具、安全、IP、内容审核、百度熊掌号、文档模式 |
这几个 id 也是子 section 的 parent 可选值。字段归类时不要按“文件方便”放置,而要按它实际影响的用户流程归类。
全局与功能
basic 是全站基础能力,字段大多会被前台高频读取。
| 子 section | 源码位置 | 典型字段/能力 |
|---|---|---|
| LOGO图像 | inc/options/admin-options.php | favicon、iconpng、logo_src、夜间 Logo |
| SEO优化 | inc/options/admin-options.php | 网站 SEO、百度收录、外链重定向、图片 alt |
| 常用功能 | inc/options/admin-options.php | 图片懒加载、代码高亮、弹窗通知 |
| 显示&布局 | inc/options/admin-options.php | 侧边栏、布局宽度、主题风格、背景、圆角、全局动画 |
| 搜索功能 | inc/options/admin-options.php | 搜索框、热门搜索、分类搜索、搜索历史、404 搜索 |
| 手机底部Tab | inc/options/admin-options.php | 移动端底部导航 |
| 右侧悬浮按钮 | inc/options/admin-options.php | 返回顶部、客服、快捷按钮 |
| 多语言翻译 | inc/options/admin-options.php | 本地化文本和翻译相关配置 |
| 社交分享 | inc/options/admin-options.php | 分享入口、分享平台、展示位置 |
| Email邮件 | inc/options/admin-options.php | SMTP、邮件模板、邮件通知 |
| 自定义代码 | inc/options/admin-options.php | 自定义 CSS、JS、头部/底部代码 |
这类字段前台读取一般用 _pz()。涉及 HTML 或脚本的字段要明确权限和输出过滤。
页面与显示
page 负责页面级结构,不直接处理文章内容本身。
| 子 section | 典型用途 |
|---|---|
| 顶部导航栏 | Header 风格、导航展示、登录入口、移动端导航 |
| 顶部多功能组件 | 幻灯片、公告、快捷入口、顶部组件 |
| 底部页脚 | Footer 布局、链接、版权、备案、统计 |
| 首页配置 | 首页文章列表、模块显示、推荐内容 |
| 分类页面 | 分类页封面、布局、列表和筛选 |
| 标签页面 | 标签页数量、布局和展示 |
| 专题页面 | 专题页列表和封面 |
| 用户主页 | 作者主页、用户资料页的展示结构 |
| 其它页面 | 通用页面头部、空状态、特殊页面样式 |
页面显示类字段通常会影响模板选择、CSS class 或查询参数。保存后不一定需要特殊同步,但读取前要给默认值,避免未保存设置时页面空白。
文章与列表
post 负责内容列表和文章页行为。
| 子 section | 典型用途 |
|---|---|
| 文章列表 | 排序、列表样式、加载方式、排除规则 |
| 列表缩略图 | 缩略图显示、幻灯片、视频封面、占位图 |
| 文章页面 | 文章头部、封面、正文宽度、阅读体验 |
| 高级筛选 | 自定义筛选项、筛选规则、筛选入口 |
| 文章功能 | 目录、点赞、收藏、打赏、海报、复制提示 |
| 评论设置 | 评论开关、样式、热评、楼层、审核提示 |
| 前台投稿 | 投稿入口、投稿字段、投稿权限、状态提示 |
文章页同时还会读取 post meta,例如独立 SEO、封面、付费内容、筛选项。全局设置用 _pz(),单篇字段用 zib_get_post_meta() 或对应业务函数。
用户与互动
user 是用户体系主入口,字段会牵动登录、资料、安全、通知和成长体系。
| 子 section | 典型用途 |
|---|---|
| 注册登录 | 登录注册开关、验证码、邮箱/短信验证、找回密码 |
| 第三方登录 | QQ、微信、GitHub、Google、Apple、Microsoft 等 OAuth |
| 消息通知 | 站内信、消息类型、接收控制、通知入口 |
| 微信通知 | 微信模板消息、订阅通知 |
| 禁封/举报 | 用户封禁、举报原因、处罚提示 |
| 身份认证 | 认证字段、认证审核、认证徽章 |
| 用户徽章 | 徽章定义、获得条件、展示规则 |
| 用户等级 | 等级名称、经验或积分规则、等级图标 |
| 用户积分 | 积分名称、获取规则、消耗规则、记录 |
| 签到奖励 | 签到开关、连续签到、奖励、补签 |
| 用户功能 | 用户中心、资料展示、绑定入口 |
| 短信接口 | 短信服务商、签名、模板、验证码 |
用户字段不要只改 meta。绑定邮箱、改密码、认证、封禁、积分、消息都应该走对应业务函数和 Ajax 流程,保证验证码、权限、日志和通知都一致。
支付与付费
pay 字段属于高风险业务域,不能当普通展示设置处理。
| 子 section | 典型用途 |
|---|---|
| 知识付费 | 付费阅读、付费下载、资源权限、游客购买 |
| 余额充值 | 用户余额、充值入口、余额支付 |
| VIP 会员 | 会员等级、会员权益、会员价格 |
| 创作分成 | 作者收入、分成比例、收入记录 |
| 推广返佣 | 邀请返利、返佣规则、提现条件 |
| 收款接口 | 支付宝、微信、虎皮椒、易支付等收款参数 |
支付字段保存后要关注订单、回调、余额、积分、会员和缓存。涉及密钥的字段不要输出到前台,也不要进入低权限导出流程。
商城与论坛模块
商城和论坛的后台 section 不完全写在 admin-options.php:
| 模块 | 文件 | 子 section |
|---|---|---|
| 商城 | inc/functions/shop/admin/options/admin-option.php | 实物商城、商品详情页、商品参数、物流&发货、其它设置 |
| 论坛 | inc/functions/bbs/admin/option.php | 全局设置、名称定义、首页设置、版块页面,以及后续帖子、话题、权限相关设置 |
这两个模块字段通常还有配套 post meta、taxonomy meta 和业务表单。全局开关在 zibll_options,单个商品、版块、帖子或分类的配置要看对应 Meta 文档。
扩展与增强
over 集中放站点增强能力:
| 子 section | 典型用途 |
|---|---|
| 系统工具 | 后台工具、缓存、导入导出、调试类能力 |
| 网站安全 | 评论验证、人机验证、请求限制、安全开关 |
| IP归属地 | IP 数据接口、归属地显示 |
| API内容审核 | 文本/图片审核服务商和开关 |
| 百度熊掌号 | 百度相关旧能力和推送配置 |
| 文档模式 | 站点文档化展示相关配置 |
这类字段常和第三方服务、缓存、请求频率有关。新增字段时要给清楚默认值,避免未配置时误请求外部服务。
定位字段的实际方法
查一个后台设置字段时建议按这个路径走:
- 在文档结构地图确定业务域。
- 在源码中搜索子 section 标题。
- 找字段
id。 - 全站搜索
_pz('字段id'或_pz("字段id"。 - 如果搜索不到,继续搜字段 id 的纯文本,确认是否通过数组、模块或 JS 使用。
- 判断保存后是否需要同步缓存、rewrite、用户数据、支付数据或任务队列。
示例:
想查“邮箱验证码登录”
→ user / 注册登录
→ 搜索字段标题或验证码相关 id
→ 查看登录 Ajax 与 action/sign_register.php
→ 确认 SMTP、验证码发送、验证校验和登录流程这种方式比从整份 admin-options.php 里盲搜更稳定,也更贴近子比主题的真实组织方式。