数据模型
梳理子比主题文章、论坛、商城、用户、订单和分类法之间的关系。
数据来源分层
子比主题大量复用 WordPress 的数据结构,同时在用户、论坛、商城、支付等模块中增加 post meta、term meta、user meta、自定义表和订单对象。扩展时要先判断数据属于哪一层,避免把业务状态写错位置。
| 数据层 | 常见内容 | 扩展建议 |
|---|---|---|
| WordPress post | 文章、页面、论坛版块、论坛帖子、商城商品 | 使用 WP_Query、主题封装函数或对应业务函数读取 |
| WordPress taxonomy | 分类、标签、专题、论坛话题、商品分类 | 使用 term/meta API,不直接写 SQL |
| post meta | 文章配置、付费设置、商品设置、统计状态 | 优先使用主题封装的读取与保存函数 |
| user meta | 用户资料、绑定信息、等级、认证、签到状态 | 保留主题校验和用户权限 |
| term meta | 分类封面、排序、统计、权限等 | 保存后注意缓存和列表统计 |
| Zibpay 表 | 订单、卡密、支付记录、资产变动 | 通过 Zibpay 类和函数处理 |
自定义内容类型
源码里注册了多个自定义 post type 和 taxonomy。它们不是“接口”,而是主题业务数据模型。
| 类型 | 来源 | 说明 |
|---|---|---|
plate | 论坛模块 | 论坛版块,支持标题、摘要、作者、层级结构 |
forum_post | 论坛模块 | 论坛帖子,支持标题、编辑器、摘要、评论、作者 |
shop_product | 商城模块 | 商城商品,支持标题、编辑器、评论、作者 |
自定义分类法
| 分类法 | 绑定对象 | 用途 |
|---|---|---|
topics | post | 文章专题 |
plate_cat | plate | 论坛版块分类 |
forum_topic | forum_post | 论坛话题 |
forum_tag | forum_post | 论坛标签 |
shop_cat | shop_product | 商品分类 |
shop_discount | shop_product | 商品优惠活动 |
shop_tag | shop_product | 商品标签 |
用户数据
用户模块围绕 WordPress user 与 user meta 扩展,包含:
- 用户中心路由和页面。
- 头像、封面、资料编辑。
- 邮箱、手机、第三方账号绑定。
- 用户认证、封禁、等级、签到、勋章。
- 邀请码、权限能力、用户页面侧栏统计。
扩展用户数据时要注意:资料编辑、绑定邮箱、修改密码、上传头像等动作都有自己的 Ajax 校验链路。不要直接在前端传 user id 后更新 user meta。
支付与资产数据
Zibpay 是独立性很强的业务模块,涉及:
- 订单创建、关闭、退款、查询。
- 支付渠道请求与回调。
- 资源下载权限、付费阅读、卡密。
- VIP、余额、积分、优惠券。
- 收入、分佣、提现、打款。
订单、余额、积分、分佣都属于资产类数据。扩展时要做到服务端可信、幂等处理、日志可追踪,不能只依赖前端参数。
缓存和统计
主题中有阅读量、收藏数、关注数、评论数、销量、评价、余额等统计字段。扩展统计时要先找现有统计函数和更新点,避免重复计数或缓存不同步。
常见注意点:
- 阅读量、关注、收藏等可能有前端 Ajax 上报。
- term 统计可能依赖 post meta 汇总。
- 订单支付成功后会触发多处权益和资产变动。
- 缓存插件不能缓存登录态、用户中心、支付页和 Ajax 响应。
开发前检查
新增字段前先回答这些问题:
- 这个数据是站点配置、文章配置、分类配置、用户状态还是订单状态?
- 是否已有 Codestar 字段或主题 meta 可以复用?
- 是否需要后台列表筛选、导出或统计?
- 是否要随订单、用户、文章删除而清理?
- 是否会被缓存、搜索、列表排序或权限判断使用?
- 是否涉及隐私、支付、资产或认证?