Files
wordpress-theme-aksrt/README.md
T
kate522 aaf458af1c refactor(autoload): migrate theme classes to Composer PSR-4
Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.
2026-07-17 13:29:22 +08:00

215 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AKSRT WordPress Theme
> **版本**: 3.4.0-dev | **架构**: 原生 PHP + WordPress (非 headless)
> **要求**: WordPress >= 6.4 | PHP >= 8.1
---
## 项目概述
AKSRT 是一款现代化的 WordPress 主题,采用**原生 WordPress 主题架构**开发(PHP + HTML + CSS + JavaScript),不依赖 REST API 进行前端渲染。
### 核心特性
- **自定义管理面板 (SPA)** — Vue3 + Vite + Naive UI 的 12 个一级业务域后台
- **统一设置契约** — Schema 驱动表单、域控制器、导入导出、按域重置、迁移状态与健康检查
- **支付/下载主线** — 下载/付费内容中心、充值/VIP/分成/返佣/网关结构、10 分钟下载 token
- **用户与增长** — OAuth 登录、邮箱验证门禁、签到奖励、邀请奖励、等级/徽章/认证/举报结构
- **内容与交互** — 首页模块化、归档/搜索/404、单篇资源页、评论审核与通知中心
- **运维工具** — 配置导出导入、dry-run 校验、邮件回滚、数据库与环境诊断
- **自定义页面模板**:About / Friends / Login / Profile / Register
- **响应式设计**
---
## 文件结构
```
AKSRT-theme/
├── functions.php # 入口:常量 + Composer autoload + bootstrap + 单例 init
├── style.css # WordPress 主题声明头
├── composer.json # 第三方依赖 + 主题 PSR-4(AKSRT\ → src/AKSRT/)
│
├── *.php # WP 核心模板保留根目录
│
├── src/AKSRT/ # Composer PSR-4 类型根(namespace AKSRT\)
│ ├── Admin/ # SPA 编排 + 域控制器 + Schema + Native ops
│ ├── Auth/ # 登录 / OAuth / 审核 / 邮箱
│ ├── Content/ # 下载 token / 付费内容 / VIP / 可见性
│ ├── Core/ # 主题壳层(Setup / Scripts / Templates / SEO / DB…)
│ ├── Credits/ # 积分 / 钱包 / 签到 / 邀请
│ ├── Extensions/ # MeiliSearch / 推送 / IP / 内容审核
│ ├── Forum/ # 论坛服务 + 收银台
│ ├── Frontend/ # 前端渲染辅助
│ ├── Messages/ # 站内信 / 私信 / 公告 / 举报
│ ├── Payment/ # 订单 / 网关 / 售后 / 物流 / 分成
│ │ └── Gateways/ # 支付宝 / 微信 / PayPal / Stripe
│ ├── Settings/ # 设置门面 + 运行时 delegates
│ ├── Shop/ # 商城服务 + meta box
│ ├── Sms/ # 短信编排 + 云厂商 adapter
│ ├── Ai/ # AI / SEO prompt
│ ├── User/ # 用户中心 / 主页 / 徽章 / 等级 / 关注
│ └── Widgets/ # 小工具类(一类一文件)
│
├── inc/ # 过程式引导与辅助
│ ├── bootstrap.php # helpers + modules + core-hooks(类由 Composer 加载)
│ ├── core-hooks.php # 核心功能钩子
│ ├── modules/ # 非类过程式模块(captcha / user-parts / widgets 注册…)
│ └── helpers/ # 辅助函数
│
├── templates/ # 模板目录(与 inc/ 隔离)
│ ├── pages/ # 自定义页面模板
│ │ ├── page-about.php # 关于页面
│ │ ├── page-friends.php # 友链墙
│ │ ├── page-login.php # 登录页面
│ │ ├── page-profile.php # 用户中心
│ │ └── page-register.php # 注册页面
│ │
│ └── parts/ # 可复用模板片段
│ ├── content-post-card.php # 文章卡片组件
│ ├── post-card.php # 文章卡片(旧版兼容)
│ └── comments.php # 评论列表组件
│
└── assets/ # 静态资源(前后端隔离)
├── css/
│ ├── frontend/ # 前端样式
│ │ ├── main.css # 主样式表
│ │ └── variables.css # CSS 变量(颜色/间距/字体)
│ ├── admin/ # 后台专用样式
│ │ └── admin-panel.css # SPA 容器面板样式
│ └── shared/ # 前后端共用
│ └── captcha.css # 人机验证样式
│
├── js/
│ └── main.js # 前端交互脚本
│
├── img/
│ └── icons/ # 本地 SVG 图标(17个)
│
└── admin/ # Vue3 SPA 后台构建产物
└── build/ # Vite 构建输出(ESM)
```
---
## 安装方式
### 方式一:直接上传(推荐)
1. 将整个 `AKSRT-theme` 文件夹上传到 `wp-content/themes/`
2. WordPress 后台 → **外观** → **主题** → 找到 **AKSRT** → **激活**
### 方式二:ZIP 打包上传
压缩为 `.zip` 后通过 WordPress 后台上传。
---
## 使用指南
### 1. 创建基础页面
激活主题后创建以下页面并选择对应模板:
| 页面名称 | 选择模板 | 路径建议 |
|---------|---------|---------|
| 关于我 | **About** | `/about` |
| 友情链接 | **Friends** | `/friends` |
| 个人中心 | **Profile** | `/profile` |
登录/注册页面会自动检测,无需手动创建。
### 2. 后台配置路径
WordPress 后台左侧 **Admin Bar** → ⚡ **AKSRT 主题设置**
或直接访问:`/wp-admin/admin.php?page=aksrt-settings`
### 3. 当前后台域
- `全局&功能`:品牌、布局、搜索、自定义代码、邮件
- `页面&显示`:首页、分类、标签、用户主页、404/搜索结果
- `文章&列表`:列表、缩略图、单篇、筛选、评论
- `功能&权限`:审核、验证码、评论/附件/下载权限
- `用户&互动`:登录注册、OAuth、通知、签到、认证、等级、徽章、举报、积分
- `支付&付费`:下载/付费内容中心、余额充值、VIP、创作分成、推广返佣、收款接口
- `备份&导入`:导入导出、健康检查、迁移状态、邮件回滚
---
## 开发说明
### Settings Facade 分层
- `AKSRT_Settings` 仍是主题设置的**唯一静态 facade**,外部调用方式保持 `AKSRT_Settings::*`
- 具体运行时 getter 已按领域拆分到 `inc/classes/settings/`,例如:
- `class-aksrt-settings-theme-search.php`
- `class-aksrt-settings-post-display.php`
- `class-aksrt-settings-home-cms.php`
- `class-aksrt-settings-user-runtime.php`
- `class-aksrt-settings-integration.php`
- `class-aksrt-settings-display-runtime.php`
- `class-aksrt-settings-extension-runtime.php`
- `class-aksrt-settings-credits-runtime.php`
- `class-aksrt-settings-category-runtime.php`
- `class-aksrt-settings-forum-shop.php`
- `class-aksrt-settings-capabilities.php`
- `inc/bootstrap.php` 会先加载 `settings/class-aksrt-settings.php`,再按领域加载这些 delegate 类
- 新增设置运行时逻辑时,优先放入对应 settings 子类;仅把聚合输出、统一入口和跨域装配保留在 `AKSRT_Settings`
### 添加新辅助函数
将函数文件放入 `inc/helpers/`,在 `bootstrap.php` 阶段1 加载。
### 添加新页面模板
将 `page-{name}.php` 放入 `templates/pages/`,并在 `class-aksrt-templates.php` 中注册。
### CSS 组织规范
| 目录 | 用途 | 加载场景 |
|------|------|---------|
| `css/frontend/` | 前端公共样式 | 所有前台页面 |
| `css/admin/` | 后台管理样式 | 仅 AKSRT 设置页面 |
| `css/shared/` | 共用组件样式 | 前后端按需加载(如验证码) |
---
## OAuth 第三方登录配置
### 支持的平台
GitHub | Gitee | QQ | Google
:---:|:---:|:---:|:---:
✅ | ✅ | ✅ | ✅
### 回调地址格式
```
https://你的域名.com/?aksrt_oauth_callback={provider}
```
`{provider}`: `github` / `gitee` / `qq` / `google`
---
## 技术栈
- **后端**: PHP 8.1+ / WordPress 6.4+
- **前端**: HTML5 / CSS3 (CSS Variables) / Vanilla JavaScript
- **图标**: 本地 SVG 图标 + 按需加载
- **字体**: Manrope + Source Serif 4 (Google Fonts)
- **后台**: Vue3 + Vite + NaiveUI (SPA)
---
## 许可证
MIT License
---
## 作者
Kate (Lexo0522)