跳到主要内容
AidoSaaS-CMS 企业主题 · 全站可视化编辑 订阅 站点地图

AidoSaaS-CMS 主题开发:从目录结构到可视化设置页

AidoSaaS-CMS 主题开发:从目录结构到可视化设置页

主题目录怎么摆、style.css 头怎么写、设置页三契约是什么、模板注入变量有哪些。本文带你从零做一个合规主题,并以 ComPro 企业主题为例。

AidoSaaS-CMS 的主题既支持传统 PHP 模板,也内置了 ComPro 企业主题——一套带可视化设置、模块拖拽与实时配色预览的现代化主题。本文讲清主题契约,并以 ComPro 为范例。

主题目录与清单头

主题放在 content/themes/<slug>/。清单头 style.css 必须包含:Theme Name(等于目录 slug)、Item Id(正版标识)、License: LicenseRef-AidoSaaS-CMS-Free。内核 ThemeLoader::scan() 据此自动登记。

设置页三契约

若要提供后台设置页,需实现三个钩子函数:

  • {slug}_settings_page_html($csrf):渲染设置表单;
  • {slug}_settings_save($req):接收并校验保存;
  • {slug}_settings_fields()(可选):声明字段元信息。

未实现 page_html 会落到报错分支,因此要么三件套齐全,要么不登记设置页。

模板注入变量

模板可接收 posts / post / term / total / paged / per_page / prev_post / next_post / translations 等变量;分页参数名为 paged。归档模板按 archive-{taxonomy}.php 解析,单页按 single-{type}.php 解析。

ComPro 的可视化能力

ComPro 把首页拆成 11 类模块(hero / logos / features / stats / showcase / latest / cta / faq / products / …),通过 sections_order 拖拽编排,并支持 7 组 Tab 的实时配色预览。模块函数统一签名 compro_block_xxx(array $sec): string。

ComPro 可视化设置
占位图:ComPro 主题设置页的模块拖拽与配色预览
区块函数返回的 HTML 片段结构
占位图:区块函数返回的 HTML 片段结构

零 GPL 纪律

图标使用自带 IconRegistry(clean-room SVG),编辑器为 MIT 协议的 Milkdown,切勿引入 GPLv2+ 的图标集(如 dashicons)。

常见问题

主题必须写 GPL 头吗?

不需要,且不应写。AidoSaaS-CMS 采用零 GPL 授权(LicenseRef-AidoSaaS-CMS-Free),主题清单头须声明对应 License。

设置项写了前端不生效?

很可能是「摆设字段」:每个设置项必须在前台被真实读取,内核 harness 会反查消费点断言。

分享

张知微

本文作者 · 发布于 2026-09-06

全部文章

评论 (0)

还没有评论,来抢沙发吧。