chore: 清理过时的 steering 文档
删除已完成项目的临时文档: - AI 设置重构相关文档(已完成,保留 phase-3-complete.md) - 设置页重组相关文档(已完成,保留 settings-reorganize-complete.md) - 多 API 管理和测试文档(已完成) - 各阶段实施计划和测试指南(已完成) 保留的核心文档: - code-style.md - 代码规范 - communication.md - 交流规范 - settings-page-guide.md - 设置页开发指南 - phase-3-complete.md - AI 重构完成总结 - settings-reorganize-complete.md - 设置页重组完成总结 - mermaid-removal-summary.md - Mermaid 移除总结 - username-comment-detection.md - 用户名评论检测
This commit is contained in:
@@ -1,144 +0,0 @@
|
||||
# AI 设置重构 - 下一步工作
|
||||
|
||||
## 已完成的工作 ✅
|
||||
|
||||
### 1. functions.php 更新
|
||||
- ✅ 添加数据迁移函数 `argon_migrate_ai_apis()`
|
||||
- ✅ 添加统一 API 管理函数
|
||||
- `argon_get_all_apis()` - 获取所有 API
|
||||
- `argon_get_api_by_id($api_id)` - 获取指定 API
|
||||
- `argon_add_api($config)` - 添加 API
|
||||
- `argon_update_api($api_id, $config)` - 更新 API
|
||||
- `argon_delete_api($api_id)` - 删除 API
|
||||
- `argon_set_active_api_for_scenario($scenario, $api_id)` - 设置场景使用的 API
|
||||
- `argon_get_active_api_config($scenario)` - 获取场景的活动 API 配置
|
||||
- ✅ 更新 `argon_get_ai_provider_config()` 支持新数据结构
|
||||
- ✅ 添加新的 AJAX 处理函数
|
||||
- `argon_ajax_add_unified_api()`
|
||||
- `argon_ajax_update_unified_api()`
|
||||
- `argon_ajax_delete_unified_api()`
|
||||
- `argon_ajax_set_active_unified_api()`
|
||||
- `argon_ajax_get_all_unified_apis()`
|
||||
- ✅ 在主题加载时自动迁移旧数据
|
||||
|
||||
### 2. 草稿文件
|
||||
- ✅ 创建新的 AI 设置界面草稿 (`tmp/ai-settings-new-structure.php`)
|
||||
- ✅ 设计了新的界面结构和交互逻辑
|
||||
|
||||
## 待完成的工作 📋
|
||||
|
||||
### 3. settings.php 重构
|
||||
|
||||
#### 3.1 移除旧的 AI 设置部分
|
||||
需要移除的内容:
|
||||
- 第 1985-2400 行:旧的文章功能 - AI 摘要部分(包含按提供商分组的 API 配置)
|
||||
- 第 4662-5100 行:评论设置中的 AI 垃圾评论识别部分
|
||||
|
||||
#### 3.2 添加新的 AI 功能部分
|
||||
在合适的位置(建议在第 1985 行之前)插入新的 AI 功能部分:
|
||||
|
||||
```php
|
||||
<!-- ========== AI 功能 ========== -->
|
||||
<h1 style="color: #5e72e4; margin-top: 50px; font-size: 32px;"><?php _e('AI 功能', 'argon');?></h1>
|
||||
|
||||
<!-- API 管理 (h2) -->
|
||||
<!-- 文章摘要 (h2) -->
|
||||
<!-- 评论审核 (h2) -->
|
||||
```
|
||||
|
||||
#### 3.3 添加 JavaScript 交互代码
|
||||
需要添加完整的 JavaScript 代码来处理:
|
||||
- 添加/编辑/删除 API
|
||||
- 测试 API 连通性
|
||||
- 刷新模型列表
|
||||
- 切换活动 API
|
||||
- 表单验证
|
||||
|
||||
#### 3.4 更新选项保存逻辑
|
||||
在 settings.php 末尾的保存函数中:
|
||||
- 移除旧的 API 配置保存逻辑
|
||||
- 添加新的统一 API 配置保存逻辑
|
||||
- 保存场景化的活动 API 设置
|
||||
|
||||
### 4. 测试
|
||||
|
||||
#### 4.1 数据迁移测试
|
||||
- 测试从旧的多 API 系统迁移到新系统
|
||||
- 验证所有 API 配置都正确迁移
|
||||
- 验证活动 API 设置正确
|
||||
|
||||
#### 4.2 功能测试
|
||||
- 测试添加新 API
|
||||
- 测试编辑 API
|
||||
- 测试删除 API
|
||||
- 测试切换活动 API
|
||||
- 测试 API 连通性测试功能
|
||||
- 测试模型列表刷新功能
|
||||
|
||||
#### 4.3 场景测试
|
||||
- 测试文章摘要生成(使用新的 API 系统)
|
||||
- 测试垃圾评论检测(使用新的 API 系统)
|
||||
- 测试不同场景使用不同 API
|
||||
|
||||
#### 4.4 向后兼容测试
|
||||
- 测试没有新数据时的回退逻辑
|
||||
- 测试旧数据的自动迁移
|
||||
|
||||
### 5. 文档更新
|
||||
- 更新用户文档,说明新的 API 管理方式
|
||||
- 更新开发文档,说明新的数据结构
|
||||
|
||||
## 实施建议
|
||||
|
||||
由于 settings.php 的重构涉及大量代码修改(需要移除约 500 行旧代码,添加约 800 行新代码),建议:
|
||||
|
||||
1. **分步实施**:
|
||||
- 第一步:只添加新的 AI 功能部分,保留旧的设置(共存)
|
||||
- 第二步:测试新功能是否正常工作
|
||||
- 第三步:移除旧的设置部分
|
||||
- 第四步:全面测试
|
||||
|
||||
2. **备份策略**:
|
||||
- 在每一步之前都创建备份
|
||||
- 使用 Git 分支进行开发
|
||||
- 保留回滚方案
|
||||
|
||||
3. **用户通知**:
|
||||
- 在更新日志中说明重大变更
|
||||
- 提供迁移指南
|
||||
- 说明新功能的优势
|
||||
|
||||
## 风险评估
|
||||
|
||||
### 高风险项
|
||||
- ❗ settings.php 重构可能影响现有用户的配置
|
||||
- ❗ 数据迁移可能失败,导致 API 配置丢失
|
||||
- ❗ JavaScript 代码可能与现有代码冲突
|
||||
|
||||
### 缓解措施
|
||||
- ✅ 已实现自动数据迁移和向后兼容
|
||||
- ✅ 保留旧数据作为备份
|
||||
- ✅ 使用独立的 AJAX 端点,避免冲突
|
||||
- 📋 需要充分测试后再发布
|
||||
|
||||
## 时间估算
|
||||
|
||||
- settings.php 重构:2-3 小时
|
||||
- JavaScript 代码编写:1-2 小时
|
||||
- 测试和调试:2-3 小时
|
||||
- 文档更新:1 小时
|
||||
|
||||
**总计:6-9 小时**
|
||||
|
||||
## 下一步行动
|
||||
|
||||
1. 用户确认是否继续进行 settings.php 的重构
|
||||
2. 如果继续,建议创建一个新的 Git 分支
|
||||
3. 按照上述步骤逐步实施
|
||||
4. 每完成一个步骤就进行测试和提交
|
||||
|
||||
## 备注
|
||||
|
||||
- 当前已完成的 functions.php 修改已经提交(commit 5254ee0)
|
||||
- 新的数据结构和 API 已经可以使用
|
||||
- 只需要更新 settings.php 的界面部分即可完成整个重构
|
||||
@@ -1,161 +0,0 @@
|
||||
# AI 设置页面重构方案
|
||||
|
||||
## 重构目标
|
||||
|
||||
将当前按提供商分组的 API 管理方式改为统一的 API 列表管理,并重新组织 AI 功能的设置结构。
|
||||
|
||||
## 当前结构问题
|
||||
|
||||
1. **API 管理分散**:每个提供商独立管理 API,用户需要在 10 个提供商之间切换
|
||||
2. **结构不清晰**:AI 摘要和评论审核分散在不同的一级分类中
|
||||
3. **用户体验差**:添加 API 时需要先选择提供商,然后才能配置
|
||||
|
||||
## 新结构设计
|
||||
|
||||
### 页面结构
|
||||
```
|
||||
AI 功能 (独立 h1,不在分类编号中)
|
||||
├── API 管理 (h2)
|
||||
│ ├── 已配置的 API 列表(统一显示所有提供商的 API)
|
||||
│ └── 添加新 API(输入密钥 → 选择提供商 → 选择模型)
|
||||
├── 文章摘要 (h2)
|
||||
│ ├── 启用 AI 摘要
|
||||
│ ├── 默认服务商选择
|
||||
│ ├── Prompt 设置
|
||||
│ └── 排除文章设置
|
||||
└── 评论审核 (h2)
|
||||
├── 启用 AI 识别
|
||||
├── 实时检测模式
|
||||
├── 关键字管理
|
||||
├── Prompt 模式
|
||||
└── 其他配置
|
||||
```
|
||||
|
||||
### 数据结构变更
|
||||
|
||||
#### 旧数据结构
|
||||
```php
|
||||
// 每个提供商独立存储
|
||||
argon_ai_openai_apis = [
|
||||
{id: 'api_1', name: '主API', api_key: 'sk-xxx', ...}
|
||||
]
|
||||
argon_ai_anthropic_apis = [...]
|
||||
// ... 10 个提供商
|
||||
```
|
||||
|
||||
#### 新数据结构
|
||||
```php
|
||||
// 统一存储所有 API
|
||||
argon_ai_apis = [
|
||||
{
|
||||
id: 'api_1',
|
||||
name: '主 OpenAI API',
|
||||
provider: 'openai',
|
||||
api_key: 'sk-xxx',
|
||||
api_endpoint: '',
|
||||
model: 'gpt-4o-mini',
|
||||
is_active: false,
|
||||
created_at: 1234567890
|
||||
},
|
||||
{
|
||||
id: 'api_2',
|
||||
name: '备用 Claude API',
|
||||
provider: 'anthropic',
|
||||
api_key: 'sk-ant-xxx',
|
||||
api_endpoint: '',
|
||||
model: 'claude-3-5-sonnet-20241022',
|
||||
is_active: true,
|
||||
created_at: 1234567891
|
||||
}
|
||||
]
|
||||
|
||||
// 当前使用的 API(按场景)
|
||||
argon_ai_summary_active_api = 'api_1' // 文章摘要使用的 API
|
||||
argon_ai_spam_active_api = 'api_2' // 垃圾评论检测使用的 API
|
||||
```
|
||||
|
||||
## 实施步骤
|
||||
|
||||
### 步骤 1:数据迁移函数
|
||||
创建 `argon_migrate_ai_apis()` 函数,将旧的分散数据迁移到新的统一结构。
|
||||
|
||||
### 步骤 2:更新核心函数
|
||||
- 修改 `argon_get_ai_provider_config()` 支持新数据结构
|
||||
- 添加 `argon_get_all_apis()` 获取所有 API
|
||||
- 添加 `argon_get_api_by_id($api_id)` 获取指定 API
|
||||
- 添加 `argon_add_api($config)` 添加 API
|
||||
- 添加 `argon_update_api($api_id, $config)` 更新 API
|
||||
- 添加 `argon_delete_api($api_id)` 删除 API
|
||||
- 添加 `argon_set_active_api_for_scenario($scenario, $api_id)` 设置场景使用的 API
|
||||
|
||||
### 步骤 3:重构 settings.php
|
||||
- 移除原有的按提供商分组的 API 配置界面
|
||||
- 创建新的统一 API 列表界面
|
||||
- 重新组织 AI 功能的设置结构
|
||||
|
||||
### 步骤 4:更新 AJAX 处理函数
|
||||
- 更新所有 API 管理相关的 AJAX 函数
|
||||
- 支持新的数据结构
|
||||
|
||||
### 步骤 5:向后兼容
|
||||
- 在主题加载时自动检测并迁移旧数据
|
||||
- 保留旧数据作为备份
|
||||
|
||||
## 界面设计
|
||||
|
||||
### API 管理界面
|
||||
```
|
||||
┌─ 已配置的 API ─────────────────────────────────────┐
|
||||
│ │
|
||||
│ ● 主 OpenAI API (gpt-4o-mini) │
|
||||
│ OpenAI (ChatGPT) | sk-xxx... │
|
||||
│ [测试] [编辑] [删除] │
|
||||
│ │
|
||||
│ ○ 备用 Claude API (claude-3-5-sonnet) │
|
||||
│ Anthropic (Claude) | sk-ant-xxx... │
|
||||
│ [测试] [编辑] [删除] │
|
||||
│ │
|
||||
│ [+ 添加新 API] │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
|
||||
添加/编辑 API:
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 配置名称: [主 OpenAI API_________________] │
|
||||
│ API 密钥: [sk-xxx_______________________] [显示] │
|
||||
│ 提供商: [OpenAI (ChatGPT) ▼] │
|
||||
│ API 端点: [_____________________________] (可选) │
|
||||
│ 模型: [gpt-4o-mini__________________] [刷新] │
|
||||
│ │
|
||||
│ [保存] [取消] │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 文章摘要设置
|
||||
```
|
||||
启用 AI 摘要: [启用 ▼]
|
||||
默认使用 API: [主 OpenAI API ▼]
|
||||
Prompt 设置: [...]
|
||||
排除文章 ID: [...]
|
||||
```
|
||||
|
||||
### 评论审核设置
|
||||
```
|
||||
启用 AI 识别: [☑] 启用 AI 自动识别垃圾评论
|
||||
默认使用 API: [备用 Claude API ▼]
|
||||
实时检测模式: [智能抽查 ▼]
|
||||
...
|
||||
```
|
||||
|
||||
## 优势
|
||||
|
||||
1. **统一管理**:所有 API 在一个列表中,一目了然
|
||||
2. **灵活配置**:不同场景可以使用不同的 API
|
||||
3. **易于添加**:添加 API 时直接输入密钥和选择提供商
|
||||
4. **更好的 UX**:不需要在多个提供商之间切换
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据迁移**:确保旧数据能够正确迁移到新结构
|
||||
2. **向后兼容**:保留旧数据作为备份,以防迁移失败
|
||||
3. **测试充分**:需要测试所有 AI 功能是否正常工作
|
||||
4. **文档更新**:更新用户文档说明新的配置方式
|
||||
@@ -1,158 +0,0 @@
|
||||
# AI 垃圾评论检测优化方案
|
||||
|
||||
## 当前问题
|
||||
|
||||
1. **Prompt 单一**:只有一个固定的 Prompt,无法适应不同场景
|
||||
2. **缺少置信度**:AI 判断没有置信度评分,无法区分确定性高低
|
||||
3. **处理过于机械**:直接根据 AI 结果自动处理,缺少灵活性
|
||||
4. **缺少上下文**:只分析评论本身,没有考虑文章内容和用户历史
|
||||
5. **无学习机制**:无法根据管理员的审核结果优化判断
|
||||
|
||||
## 优化方案
|
||||
|
||||
### 1. 多级 Prompt 系统
|
||||
|
||||
**极简模式(minimal)**
|
||||
- 适用场景:API 费用敏感、快速检测
|
||||
- Token 消耗:约 100-150 tokens
|
||||
- 特点:只判断是否垃圾,理由简短
|
||||
|
||||
**标准模式(standard)** - 默认
|
||||
- 适用场景:日常使用,平衡准确性和成本
|
||||
- Token 消耗:约 200-300 tokens
|
||||
- 特点:详细审核标准,包含置信度和处理建议
|
||||
|
||||
**增强模式(enhanced)**
|
||||
- 适用场景:重要内容、疑难案例
|
||||
- Token 消耗:约 300-500 tokens
|
||||
- 特点:多维度分析,包含综合分析说明
|
||||
|
||||
### 2. 智能置信度系统
|
||||
|
||||
AI 返回置信度(0-1):
|
||||
- **0.9-1.0**:非常确定 → 可自动处理
|
||||
- **0.7-0.9**:比较确定 → 建议自动处理
|
||||
- **0.5-0.7**:中等确定 → 建议人工审核
|
||||
- **0.0-0.5**:不太确定 → 必须人工审核
|
||||
|
||||
### 3. 智能处理建议
|
||||
|
||||
AI 返回处理建议:
|
||||
- **auto**:自动处理(高置信度垃圾内容)
|
||||
- **review**:建议人工审核(中等置信度或边缘情况)
|
||||
- **approve**:建议直接通过(正常内容)
|
||||
|
||||
管理员可设置:
|
||||
- 只有置信度 > 0.85 才自动处理
|
||||
- 置信度 0.5-0.85 标记为待审核
|
||||
- 置信度 < 0.5 直接通过并记录
|
||||
|
||||
### 4. 上下文增强
|
||||
|
||||
评论检测时提供:
|
||||
- **文章信息**:标题、摘要(判断相关性)
|
||||
- **用户历史**:检测次数、通过率(判断可信度)
|
||||
- **评论时间**:判断是否为批量发送
|
||||
- **IP 地址**:判断是否为已知垃圾来源
|
||||
|
||||
### 5. 多维度分析
|
||||
|
||||
AI 分析维度:
|
||||
- **内容合规性**:是否违规
|
||||
- **内容质量**:是否有实质性内容
|
||||
- **用户行为**:用户名、邮箱、网站是否可疑
|
||||
- **上下文相关性**:与文章主题的相关性
|
||||
|
||||
### 6. 学习优化机制
|
||||
|
||||
记录管理员的审核决策:
|
||||
- 管理员批准了 AI 标记的垃圾评论 → 降低该类型的检测阈值
|
||||
- 管理员拒绝了 AI 的判断 → 提高该类型的检测阈值
|
||||
- 定期分析误判率,优化 Prompt
|
||||
|
||||
## 实施步骤
|
||||
|
||||
### 步骤 1:添加 Prompt 模式选择
|
||||
|
||||
在设置页添加选项:
|
||||
```php
|
||||
<select name="argon_comment_spam_detection_prompt_mode">
|
||||
<option value="minimal">极简模式(省 token)</option>
|
||||
<option value="standard" selected>标准模式(推荐)</option>
|
||||
<option value="enhanced">增强模式(更准确)</option>
|
||||
<option value="custom">自定义 Prompt</option>
|
||||
</select>
|
||||
```
|
||||
|
||||
### 步骤 2:优化检测函数
|
||||
|
||||
添加新函数:
|
||||
- `argon_get_spam_detection_prompt($mode)` - 获取不同模式的 Prompt
|
||||
- `argon_build_comment_context($comment)` - 构建评论上下文
|
||||
- `argon_should_auto_process($result)` - 根据置信度判断是否自动处理
|
||||
|
||||
### 步骤 3:优化处理逻辑
|
||||
|
||||
根据 AI 的建议和置信度:
|
||||
```php
|
||||
if ($confidence > 0.85 && $suggestion === 'auto') {
|
||||
// 自动处理
|
||||
} elseif ($confidence > 0.5) {
|
||||
// 标记为待审核
|
||||
} else {
|
||||
// 直接通过,记录低置信度
|
||||
}
|
||||
```
|
||||
|
||||
### 步骤 4:添加学习机制
|
||||
|
||||
记录管理员操作:
|
||||
```php
|
||||
// 管理员批准/拒绝 AI 判断时
|
||||
update_option('argon_spam_detection_feedback_' . $pattern_hash, [
|
||||
'ai_decision' => $ai_result,
|
||||
'admin_decision' => $admin_action,
|
||||
'timestamp' => time()
|
||||
]);
|
||||
```
|
||||
|
||||
### 步骤 5:优化显示界面
|
||||
|
||||
在后台评论列表显示:
|
||||
- AI 置信度标签
|
||||
- 处理建议
|
||||
- 综合分析(鼠标悬停显示)
|
||||
|
||||
## 预期效果
|
||||
|
||||
1. **准确率提升**:通过多维度分析和置信度评分,减少误判
|
||||
2. **灵活性增强**:管理员可根据置信度选择处理方式
|
||||
3. **成本优化**:提供多级 Prompt,平衡准确性和成本
|
||||
4. **持续优化**:通过学习机制不断提升判断准确性
|
||||
5. **用户体验**:减少误杀正常评论,提升用户满意度
|
||||
|
||||
## 配置建议
|
||||
|
||||
### 小型博客(评论量 < 100/天)
|
||||
- Prompt 模式:标准模式
|
||||
- 实时检测:智能抽查 20%
|
||||
- 自动处理阈值:置信度 > 0.9
|
||||
|
||||
### 中型博客(评论量 100-500/天)
|
||||
- Prompt 模式:标准模式
|
||||
- 实时检测:智能抽查 30%
|
||||
- 自动处理阈值:置信度 > 0.85
|
||||
|
||||
### 大型博客(评论量 > 500/天)
|
||||
- Prompt 模式:极简模式
|
||||
- 实时检测:智能抽查 40%
|
||||
- 自动处理阈值:置信度 > 0.8
|
||||
- 定期使用增强模式批量扫描待审核评论
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **API 成本**:增强模式会消耗更多 tokens,建议按需使用
|
||||
2. **响应时间**:上下文信息越多,AI 响应时间越长
|
||||
3. **隐私保护**:不要将敏感信息(如完整邮箱)发送给 AI
|
||||
4. **误判处理**:始终提供人工审核入口,避免误杀
|
||||
5. **定期review**:定期检查 AI 判断结果,优化 Prompt
|
||||
@@ -1,136 +0,0 @@
|
||||
# 多 API 管理功能设计
|
||||
|
||||
## 功能概述
|
||||
|
||||
为每个 AI 服务商支持配置多个 API,用户可以:
|
||||
- 为同一服务商添加多个 API 配置(不同的 Key、端点、模型)
|
||||
- 选择其中一个作为当前使用的 API
|
||||
- 方便实现负载均衡、备用切换、不同场景使用不同配置等需求
|
||||
|
||||
## 数据结构
|
||||
|
||||
### 配置存储格式
|
||||
```php
|
||||
// 存储在 WordPress options 中
|
||||
// 键名:argon_ai_{provider}_apis
|
||||
// 值:JSON 数组
|
||||
[
|
||||
{
|
||||
"id": "api_1",
|
||||
"name": "主 API",
|
||||
"api_key": "sk-xxx",
|
||||
"api_endpoint": "",
|
||||
"model": "gpt-4o-mini",
|
||||
"is_active": true
|
||||
},
|
||||
{
|
||||
"id": "api_2",
|
||||
"name": "备用 API",
|
||||
"api_key": "sk-yyy",
|
||||
"api_endpoint": "https://api.custom.com/v1/chat/completions",
|
||||
"model": "gpt-4o",
|
||||
"is_active": false
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### 当前使用的 API ID
|
||||
```php
|
||||
// 键名:argon_ai_{provider}_active_api
|
||||
// 值:字符串,API 的 ID
|
||||
"api_1"
|
||||
```
|
||||
|
||||
## 界面设计
|
||||
|
||||
### 设置页布局
|
||||
```
|
||||
AI 服务商: [OpenAI ▼]
|
||||
|
||||
┌─ OpenAI 配置 ─────────────────────────────┐
|
||||
│ │
|
||||
│ 已配置的 API: │
|
||||
│ ○ 主 API (gpt-4o-mini) [编辑] [删除]│
|
||||
│ ● 备用 API (gpt-4o) [编辑] [删除]│
|
||||
│ │
|
||||
│ [+ 添加新 API 配置] │
|
||||
│ │
|
||||
└────────────────────────────────────────────┘
|
||||
|
||||
添加/编辑 API 配置:
|
||||
┌────────────────────────────────────────────┐
|
||||
│ 配置名称: [主 API_______________] │
|
||||
│ API 密钥: [sk-xxx______________] [显示] │
|
||||
│ API 端点: [___________________] (可选) │
|
||||
│ 模型: [gpt-4o-mini_________] [刷新] │
|
||||
│ │
|
||||
│ [保存] [取消] │
|
||||
└────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 实现步骤
|
||||
|
||||
### 1. 数据层
|
||||
- `argon_get_provider_apis($provider)` - 获取提供商的所有 API 配置
|
||||
- `argon_get_active_api($provider)` - 获取当前使用的 API 配置
|
||||
- `argon_add_provider_api($provider, $config)` - 添加 API 配置
|
||||
- `argon_update_provider_api($provider, $api_id, $config)` - 更新 API 配置
|
||||
- `argon_delete_provider_api($provider, $api_id)` - 删除 API 配置
|
||||
- `argon_set_active_api($provider, $api_id)` - 设置当前使用的 API
|
||||
|
||||
### 2. 界面层
|
||||
- 为每个提供商显示 API 列表
|
||||
- 添加/编辑表单(可折叠)
|
||||
- 单选框选择当前使用的 API
|
||||
- AJAX 操作(添加、编辑、删除、切换)
|
||||
|
||||
### 3. 调用层
|
||||
- 更新 `argon_get_ai_provider_config()` 函数
|
||||
- 从多个 API 中获取当前激活的配置
|
||||
- 保持向后兼容(如果没有配置多 API,使用原有逻辑)
|
||||
|
||||
## 使用场景
|
||||
|
||||
### 场景 1:负载均衡
|
||||
- 配置多个 OpenAI API Key
|
||||
- 手动或自动切换使用不同的 Key
|
||||
- 避免单个 Key 达到速率限制
|
||||
|
||||
### 场景 2:备用切换
|
||||
- 主 API 配置官方端点
|
||||
- 备用 API 配置代理端点
|
||||
- 主 API 失败时手动切换到备用
|
||||
|
||||
### 场景 3:不同场景使用不同配置
|
||||
- API 1:使用 gpt-4o-mini(快速、便宜)用于评论检测
|
||||
- API 2:使用 gpt-4o(准确、贵)用于文章摘要
|
||||
- 根据使用场景选择不同的 API
|
||||
|
||||
### 场景 4:测试与生产分离
|
||||
- API 1:测试环境配置
|
||||
- API 2:生产环境配置
|
||||
- 方便切换测试
|
||||
|
||||
## 向后兼容
|
||||
|
||||
如果用户已有旧配置(单 API 模式):
|
||||
1. 自动迁移到新格式
|
||||
2. 创建一个名为"默认配置"的 API
|
||||
3. 设置为当前使用
|
||||
|
||||
## 未来扩展
|
||||
|
||||
### 自动切换(可选)
|
||||
- 检测 API 调用失败
|
||||
- 自动切换到下一个可用的 API
|
||||
- 记录切换日志
|
||||
|
||||
### 负载均衡(可选)
|
||||
- 轮询模式:依次使用不同的 API
|
||||
- 随机模式:随机选择一个 API
|
||||
- 权重模式:根据权重分配使用频率
|
||||
|
||||
### 健康检查(可选)
|
||||
- 定期检测 API 可用性
|
||||
- 标记不可用的 API
|
||||
- 自动禁用失败的 API
|
||||
@@ -1,219 +0,0 @@
|
||||
# 多 API 管理功能测试指南
|
||||
|
||||
## 测试环境
|
||||
|
||||
- WordPress 后台 → 外观 → Argon 主题选项 → 文章功能 → AI 文章摘要
|
||||
- 选择任意 AI 服务商(如 OpenAI)
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. 多 API 配置管理
|
||||
- 每个 AI 服务商可以配置多个 API
|
||||
- 每个 API 配置包含:配置名称、API 密钥、API 端点(可选)、模型(可选)
|
||||
- 通过单选框选择当前使用的 API
|
||||
- 支持添加、编辑、删除 API 配置
|
||||
|
||||
### 2. 模型列表刷新
|
||||
- 每个 API 配置都可以独立刷新模型列表
|
||||
- 根据配置的 API 密钥和端点动态获取可用模型
|
||||
- 支持从模型列表中快速选择并应用
|
||||
|
||||
### 3. 向后兼容
|
||||
- 如果用户之前没有配置多 API,系统会自动从旧配置迁移
|
||||
- 创建一个名为"默认配置"的 API 并设置为激活状态
|
||||
|
||||
## 测试步骤
|
||||
|
||||
### 步骤 1:添加第一个 API 配置
|
||||
|
||||
**操作**:
|
||||
1. 选择 AI 服务商(如 OpenAI)
|
||||
2. 点击"添加新 API 配置"按钮
|
||||
3. 填写配置信息:
|
||||
- 配置名称:主 API
|
||||
- API 密钥:sk-test-key-1
|
||||
- API 端点:(留空或填写自定义端点)
|
||||
- 模型:(留空或填写模型名称)
|
||||
4. 点击"刷新"按钮测试获取模型列表
|
||||
5. 从模型列表中选择一个模型
|
||||
6. 点击"使用选中的模型"按钮
|
||||
7. 点击"保存"按钮
|
||||
|
||||
**预期结果**:
|
||||
- 表单隐藏
|
||||
- 显示新添加的 API 配置
|
||||
- 该 API 自动被选中(单选框勾选)
|
||||
- 显示配置名称、模型、密钥前缀
|
||||
|
||||
### 步骤 2:添加第二个 API 配置
|
||||
|
||||
**操作**:
|
||||
1. 再次点击"添加新 API 配置"按钮
|
||||
2. 填写配置信息:
|
||||
- 配置名称:备用 API
|
||||
- API 密钥:sk-test-key-2
|
||||
- API 端点:https://api.custom.com/v1/chat/completions
|
||||
- 模型:gpt-4o
|
||||
3. 点击"保存"按钮
|
||||
|
||||
**预期结果**:
|
||||
- 显示两个 API 配置
|
||||
- 第一个 API 仍然被选中
|
||||
- 第二个 API 未被选中
|
||||
|
||||
### 步骤 3:切换激活的 API
|
||||
|
||||
**操作**:
|
||||
1. 点击第二个 API 的单选框
|
||||
|
||||
**预期结果**:
|
||||
- 第二个 API 被选中
|
||||
- 第一个 API 取消选中
|
||||
|
||||
### 步骤 4:编辑 API 配置
|
||||
|
||||
**操作**:
|
||||
1. 点击第一个 API 的"编辑"按钮
|
||||
2. 修改配置名称为"主 API(已更新)"
|
||||
3. 点击"刷新"按钮重新获取模型列表
|
||||
4. 选择一个不同的模型
|
||||
5. 点击"保存"按钮
|
||||
|
||||
**预期结果**:
|
||||
- 表单隐藏
|
||||
- 第一个 API 的名称和模型更新
|
||||
- 激活状态保持不变(第二个 API 仍然被选中)
|
||||
|
||||
### 步骤 5:尝试删除激活的 API
|
||||
|
||||
**操作**:
|
||||
1. 点击第二个 API(当前激活)的"删除"按钮
|
||||
|
||||
**预期结果**:
|
||||
- 弹出错误提示:"无法删除当前正在使用的 API 配置,请先切换到其他 API"
|
||||
- API 未被删除
|
||||
|
||||
### 步骤 6:删除非激活的 API
|
||||
|
||||
**操作**:
|
||||
1. 点击第一个 API(未激活)的"删除"按钮
|
||||
2. 在确认对话框中点击"确定"
|
||||
|
||||
**预期结果**:
|
||||
- 第一个 API 被删除
|
||||
- 只剩下第二个 API
|
||||
- 第二个 API 仍然被选中
|
||||
|
||||
### 步骤 7:测试模型刷新功能
|
||||
|
||||
**操作**:
|
||||
1. 点击"添加新 API 配置"
|
||||
2. 填写 API 密钥
|
||||
3. 点击"刷新"按钮
|
||||
|
||||
**预期结果**:
|
||||
- 按钮显示加载状态(图标旋转)
|
||||
- 显示"加载中..."提示
|
||||
- 成功后显示可用模型列表
|
||||
- 可以选择模型并应用到输入框
|
||||
|
||||
### 步骤 8:保存设置
|
||||
|
||||
**操作**:
|
||||
1. 滚动到页面底部
|
||||
2. 点击"保存更改"按钮
|
||||
|
||||
**预期结果**:
|
||||
- 显示"设置已保存"提示
|
||||
- 刷新页面后,配置仍然存在
|
||||
- 激活的 API 保持选中状态
|
||||
|
||||
### 步骤 9:测试 AI 摘要生成
|
||||
|
||||
**操作**:
|
||||
1. 前往任意文章页面
|
||||
2. 查看是否显示 AI 摘要
|
||||
|
||||
**预期结果**:
|
||||
- 使用当前激活的 API 配置生成摘要
|
||||
- 摘要正常显示
|
||||
|
||||
## 边界情况测试
|
||||
|
||||
### 测试 1:空配置名称
|
||||
- 不填写配置名称,直接点击保存
|
||||
- 预期:弹出提示"请输入配置名称"
|
||||
|
||||
### 测试 2:空 API 密钥
|
||||
- 只填写配置名称,不填写 API 密钥
|
||||
- 预期:弹出提示"请输入 API 密钥"
|
||||
|
||||
### 测试 3:刷新模型时未填写密钥
|
||||
- 不填写 API 密钥,直接点击刷新
|
||||
- 预期:弹出提示"请先输入 API 密钥"
|
||||
|
||||
### 测试 4:删除最后一个 API
|
||||
- 当只剩一个 API 时,尝试删除
|
||||
- 预期:如果是激活的,无法删除;如果不是激活的,可以删除
|
||||
|
||||
### 测试 5:切换服务商
|
||||
- 切换到不同的 AI 服务商(如 DeepSeek)
|
||||
- 预期:显示该服务商的 API 配置列表
|
||||
|
||||
### 测试 6:向后兼容性测试
|
||||
- 如果之前有旧的单 API 配置
|
||||
- 预期:自动迁移为"默认配置"并设置为激活
|
||||
|
||||
## 功能验证清单
|
||||
|
||||
- [ ] 添加第一个 API 配置
|
||||
- [ ] 添加第二个 API 配置
|
||||
- [ ] 切换激活的 API
|
||||
- [ ] 编辑 API 配置
|
||||
- [ ] 尝试删除激活的 API(应失败)
|
||||
- [ ] 删除非激活的 API
|
||||
- [ ] 刷新模型列表
|
||||
- [ ] 从模型列表选择并应用模型
|
||||
- [ ] 保存设置并刷新页面
|
||||
- [ ] 验证数据持久化
|
||||
- [ ] 测试空配置名称
|
||||
- [ ] 测试空 API 密钥
|
||||
- [ ] 测试切换服务商
|
||||
- [ ] 测试 AI 摘要生成功能
|
||||
- [ ] 测试向后兼容性
|
||||
|
||||
## 已知问题
|
||||
|
||||
无
|
||||
|
||||
## 修复记录
|
||||
|
||||
### 2026-01-26
|
||||
- 修复删除功能:添加激活状态检查,防止删除当前使用的 API
|
||||
- 修复保存逻辑:编辑时正确保留激活状态
|
||||
- 优化体验:添加第一个 API 时自动设置为激活
|
||||
- 添加模型刷新功能:支持动态获取可用模型列表
|
||||
- 修复配置获取的错误处理:防止空配置导致 Fatal Error
|
||||
- 改进向后兼容性:自动迁移旧配置到新格式
|
||||
|
||||
## 使用场景
|
||||
|
||||
### 场景 1:负载均衡
|
||||
- 配置多个 OpenAI API Key
|
||||
- 手动切换使用不同的 Key
|
||||
- 避免单个 Key 达到速率限制
|
||||
|
||||
### 场景 2:备用切换
|
||||
- 主 API 配置官方端点
|
||||
- 备用 API 配置代理端点
|
||||
- 主 API 失败时手动切换到备用
|
||||
|
||||
### 场景 3:不同场景使用不同配置
|
||||
- API 1:使用 gpt-4o-mini(快速、便宜)
|
||||
- API 2:使用 gpt-4o(准确、贵)
|
||||
- 根据需求切换不同的 API
|
||||
|
||||
### 场景 4:测试与生产分离
|
||||
- API 1:测试环境配置
|
||||
- API 2:生产环境配置
|
||||
- 方便切换测试
|
||||
@@ -1,224 +0,0 @@
|
||||
# AI 设置重构 - 第一阶段完成总结
|
||||
|
||||
## 📅 完成时间
|
||||
2026-01-26
|
||||
|
||||
## ✅ 第一阶段:后端系统开发(已完成)
|
||||
|
||||
### 1. 核心功能实现
|
||||
|
||||
#### 数据迁移系统
|
||||
- ✅ `argon_migrate_ai_apis()` - 自动迁移旧数据到新结构
|
||||
- ✅ 在主题加载时自动执行迁移
|
||||
- ✅ 保留旧数据作为备份
|
||||
- ✅ 迁移状态标记(`argon_ai_apis_migrated`)
|
||||
|
||||
#### 统一 API 管理函数
|
||||
- ✅ `argon_get_all_apis()` - 获取所有 API 配置
|
||||
- ✅ `argon_get_api_by_id($api_id)` - 根据 ID 获取 API
|
||||
- ✅ `argon_add_api($config)` - 添加新 API
|
||||
- ✅ `argon_update_api($api_id, $config)` - 更新 API
|
||||
- ✅ `argon_delete_api($api_id)` - 删除 API(保护正在使用的 API)
|
||||
- ✅ `argon_set_active_api_for_scenario($scenario, $api_id)` - 场景化 API 设置
|
||||
- ✅ `argon_get_active_api_config($scenario)` - 获取场景的活动 API
|
||||
|
||||
#### 向后兼容
|
||||
- ✅ 更新 `argon_get_ai_provider_config()` 优先使用新系统
|
||||
- ✅ 回退机制:新系统无数据时使用旧系统
|
||||
- ✅ 三层回退:新系统 → 旧多 API 系统 → 旧单 API 系统
|
||||
|
||||
#### AJAX 接口
|
||||
- ✅ `argon_ajax_add_unified_api()` - 添加 API
|
||||
- ✅ `argon_ajax_update_unified_api()` - 更新 API
|
||||
- ✅ `argon_ajax_delete_unified_api()` - 删除 API
|
||||
- ✅ `argon_ajax_set_active_unified_api()` - 设置活动 API
|
||||
- ✅ `argon_ajax_get_all_unified_apis()` - 获取所有 API
|
||||
|
||||
### 2. 数据结构设计
|
||||
|
||||
#### 新数据结构
|
||||
```php
|
||||
// 统一存储:argon_ai_apis
|
||||
[
|
||||
{
|
||||
'id' => 'api_1737878400_1234',
|
||||
'name' => '主 OpenAI API',
|
||||
'provider' => 'openai',
|
||||
'api_key' => 'sk-xxx',
|
||||
'api_endpoint' => '',
|
||||
'model' => 'gpt-4o-mini',
|
||||
'is_active' => false,
|
||||
'created_at' => 1737878400
|
||||
}
|
||||
]
|
||||
|
||||
// 场景化配置
|
||||
argon_ai_summary_active_api = 'api_1737878400_1234' // 文章摘要
|
||||
argon_ai_spam_active_api = 'api_1737878400_5678' // 评论审核
|
||||
```
|
||||
|
||||
### 3. 测试工具
|
||||
|
||||
#### 测试脚本
|
||||
- ✅ `test-unified-api-system.php` - 完整的系统测试脚本
|
||||
- 测试内容:
|
||||
- 函数存在性检查
|
||||
- 数据迁移状态
|
||||
- API 配置查看
|
||||
- 旧数据检查
|
||||
- 场景化 API 测试
|
||||
- 向后兼容性测试
|
||||
|
||||
### 4. 文档
|
||||
|
||||
#### 设计文档
|
||||
- ✅ `ai-settings-refactor-plan.md` - 完整的重构方案
|
||||
- ✅ `ai-refactor-next-steps.md` - 下一步工作计划
|
||||
- ✅ `phase-1-complete.md` - 第一阶段总结(本文档)
|
||||
|
||||
#### 界面草稿
|
||||
- ✅ `tmp/ai-settings-new-structure.php` - 新 UI 设计草稿
|
||||
|
||||
### 5. Git 提交记录
|
||||
|
||||
```
|
||||
5254ee0 - feat: 添加统一 API 管理系统
|
||||
2c25caa - feat: 添加统一 API 系统测试脚本和文档
|
||||
```
|
||||
|
||||
## 🎯 第一阶段成果
|
||||
|
||||
### 优势
|
||||
1. **完全向后兼容**:不影响现有用户的配置
|
||||
2. **自动迁移**:无需手动操作,自动完成数据迁移
|
||||
3. **场景化配置**:文章摘要和评论审核可使用不同 API
|
||||
4. **安全保护**:不允许删除正在使用的 API
|
||||
5. **完整测试**:提供测试脚本验证功能
|
||||
|
||||
### 技术亮点
|
||||
1. **三层回退机制**:确保在任何情况下都能获取到 API 配置
|
||||
2. **数据备份**:旧数据完整保留,可随时回滚
|
||||
3. **独立 AJAX 端点**:避免与现有代码冲突
|
||||
4. **场景化设计**:为未来扩展更多场景预留空间
|
||||
|
||||
## 📋 第二阶段:测试和验证(当前阶段)
|
||||
|
||||
### 目标
|
||||
验证第一阶段开发的功能是否正常工作
|
||||
|
||||
### 任务清单
|
||||
|
||||
#### 1. 运行测试脚本
|
||||
- [ ] 访问 `test-unified-api-system.php`
|
||||
- [ ] 检查所有测试项是否通过
|
||||
- [ ] 验证数据迁移是否成功
|
||||
|
||||
#### 2. 功能测试
|
||||
- [ ] 测试 AI 文章摘要生成
|
||||
- [ ] 测试 AI 垃圾评论检测
|
||||
- [ ] 验证向后兼容性
|
||||
|
||||
#### 3. 问题排查
|
||||
- [ ] 检查小米 Mimo API 是否正常工作
|
||||
- [ ] 查看错误日志
|
||||
- [ ] 修复发现的问题
|
||||
|
||||
### 测试步骤
|
||||
|
||||
#### 步骤 1:访问测试页面
|
||||
```
|
||||
https://your-site.com/wp-content/themes/argon/test-unified-api-system.php
|
||||
```
|
||||
|
||||
#### 步骤 2:检查测试结果
|
||||
- 所有函数是否存在?
|
||||
- 数据是否成功迁移?
|
||||
- API 配置是否正确?
|
||||
- 向后兼容是否正常?
|
||||
|
||||
#### 步骤 3:测试 AI 功能
|
||||
- 创建一篇新文章,查看是否生成 AI 摘要
|
||||
- 发表一条评论,查看 AI 检测是否工作
|
||||
- 访问 AI 查询页面,查看统计数据
|
||||
|
||||
#### 步骤 4:问题记录
|
||||
如果发现问题,记录:
|
||||
- 问题描述
|
||||
- 错误信息
|
||||
- 复现步骤
|
||||
- 预期行为
|
||||
|
||||
## 📊 第三阶段:UI 重构(待开始)
|
||||
|
||||
### 目标
|
||||
在确认后端功能正常后,开始 UI 重构
|
||||
|
||||
### 实施策略
|
||||
采用**渐进式重构**:
|
||||
|
||||
#### 阶段 3.1:添加新 UI(与旧 UI 共存)
|
||||
- 在 settings.php 中添加新的 AI 功能部分
|
||||
- 保留旧的设置界面
|
||||
- 用户可以选择使用新界面或旧界面
|
||||
|
||||
#### 阶段 3.2:测试新 UI
|
||||
- 测试所有交互功能
|
||||
- 收集用户反馈
|
||||
- 修复发现的问题
|
||||
|
||||
#### 阶段 3.3:移除旧 UI
|
||||
- 确认新 UI 稳定后
|
||||
- 移除旧的设置界面
|
||||
- 更新文档
|
||||
|
||||
## 🔍 当前状态
|
||||
|
||||
### 已完成
|
||||
- ✅ 后端核心功能开发
|
||||
- ✅ 数据迁移系统
|
||||
- ✅ AJAX 接口
|
||||
- ✅ 测试工具
|
||||
- ✅ 文档
|
||||
|
||||
### 进行中
|
||||
- 🔄 第二阶段:测试和验证
|
||||
|
||||
### 待开始
|
||||
- ⏳ 第三阶段:UI 重构
|
||||
|
||||
## 💡 建议
|
||||
|
||||
### 立即行动
|
||||
1. **运行测试脚本**:验证系统是否正常工作
|
||||
2. **检查错误日志**:查看是否有错误信息
|
||||
3. **测试 AI 功能**:确认文章摘要和评论检测正常
|
||||
|
||||
### 如果测试通过
|
||||
- 可以开始第三阶段的 UI 重构
|
||||
- 或者先解决小米 Mimo 的问题
|
||||
|
||||
### 如果测试失败
|
||||
- 记录错误信息
|
||||
- 分析问题原因
|
||||
- 修复后再次测试
|
||||
|
||||
## 📞 需要帮助?
|
||||
|
||||
如果在测试过程中遇到问题,请提供:
|
||||
1. 测试脚本的输出结果
|
||||
2. 错误日志内容
|
||||
3. 具体的问题描述
|
||||
|
||||
我将帮助您分析和解决问题。
|
||||
|
||||
## 🎉 总结
|
||||
|
||||
第一阶段的后端开发已经完成,新的统一 API 管理系统已经就绪。现在需要进行测试验证,确保功能正常工作后,再进行 UI 重构。
|
||||
|
||||
采用分阶段实施的策略,可以:
|
||||
- ✅ 降低风险
|
||||
- ✅ 逐步验证
|
||||
- ✅ 及时发现问题
|
||||
- ✅ 保证质量
|
||||
|
||||
让我们继续第二阶段的测试工作!
|
||||
@@ -1,424 +0,0 @@
|
||||
# 第二阶段:测试和验证指南
|
||||
|
||||
## 📅 开始时间
|
||||
2026-01-26
|
||||
|
||||
## 🎯 测试目标
|
||||
|
||||
验证统一 API 管理系统的后端功能是否正常工作,为第三阶段的 UI 重构做准备。
|
||||
|
||||
## 📋 测试清单
|
||||
|
||||
### 1. 系统状态检查 ✅
|
||||
|
||||
**测试文件**: `test-system-status.php`
|
||||
|
||||
**访问方式**:
|
||||
```
|
||||
https://your-site.com/wp-content/themes/argon/test-system-status.php
|
||||
```
|
||||
|
||||
**检查项目**:
|
||||
- [ ] 所有核心函数已加载
|
||||
- [ ] 数据迁移状态正常
|
||||
- [ ] API 配置正确显示
|
||||
- [ ] 场景配置正常工作
|
||||
- [ ] 旧数据已备份
|
||||
|
||||
**预期结果**:
|
||||
- 显示"✓ 统一 API 管理系统已就绪!"
|
||||
- 如果有旧配置,应该已经迁移到新系统
|
||||
- 文章摘要和评论审核场景应该有活动的 API
|
||||
|
||||
---
|
||||
|
||||
### 2. 详细功能测试 ✅
|
||||
|
||||
**测试文件**: `test-unified-api-system.php`
|
||||
|
||||
**访问方式**:
|
||||
```
|
||||
https://your-site.com/wp-content/themes/argon/test-unified-api-system.php
|
||||
```
|
||||
|
||||
**检查项目**:
|
||||
- [ ] 函数存在性检查通过
|
||||
- [ ] 数据迁移成功
|
||||
- [ ] API 配置列表正确显示
|
||||
- [ ] 旧数据检查正常
|
||||
- [ ] 场景化 API 测试通过
|
||||
- [ ] 向后兼容性测试通过
|
||||
|
||||
**预期结果**:
|
||||
- 所有测试项显示绿色 ✓
|
||||
- 测试总结显示"✓ 统一 API 管理系统已就绪!"
|
||||
|
||||
---
|
||||
|
||||
### 3. AI 功能实际测试
|
||||
|
||||
#### 3.1 文章摘要测试
|
||||
|
||||
**步骤**:
|
||||
1. 确保已配置文章摘要的活动 API
|
||||
2. 创建或编辑一篇文章
|
||||
3. 发布文章
|
||||
4. 查看文章页面,检查是否显示 AI 摘要
|
||||
|
||||
**检查点**:
|
||||
- [ ] AI 摘要正常生成
|
||||
- [ ] 使用的是正确的 API(检查日志)
|
||||
- [ ] 没有错误信息
|
||||
|
||||
**如果失败**:
|
||||
- 检查 WordPress 错误日志
|
||||
- 查看文章的 `_argon_ai_summary_error` meta
|
||||
- 确认 API 密钥和端点正确
|
||||
|
||||
#### 3.2 评论审核测试
|
||||
|
||||
**步骤**:
|
||||
1. 确保已配置评论审核的活动 API
|
||||
2. 启用 AI 垃圾评论检测
|
||||
3. 发表一条测试评论
|
||||
4. 检查评论是否被正确处理
|
||||
|
||||
**检查点**:
|
||||
- [ ] AI 检测正常工作
|
||||
- [ ] 使用的是正确的 API
|
||||
- [ ] 检测结果合理
|
||||
|
||||
**如果失败**:
|
||||
- 检查 WordPress 错误日志
|
||||
- 查看评论的 meta 数据
|
||||
- 确认 API 密钥和端点正确
|
||||
|
||||
---
|
||||
|
||||
### 4. 小米 Mimo API 专项测试
|
||||
|
||||
**背景**: 用户反馈小米 Mimo 无法使用
|
||||
|
||||
**测试步骤**:
|
||||
|
||||
#### 4.1 检查配置
|
||||
```php
|
||||
// 在 test-system-status.php 中查看
|
||||
// 小米 Mimo 的配置是否正确
|
||||
```
|
||||
|
||||
**检查点**:
|
||||
- [ ] API 密钥格式正确
|
||||
- [ ] 端点是否为 `https://api.mimo.xiaomi.com/v1/chat/completions`
|
||||
- [ ] 模型是否为 `MiMo-V2-Flash` 或其他有效模型
|
||||
|
||||
#### 4.2 手动测试 API
|
||||
|
||||
创建测试脚本 `test-xiaomi-api.php`:
|
||||
|
||||
```php
|
||||
<?php
|
||||
require_once('../../../wp-load.php');
|
||||
|
||||
if (!current_user_can('manage_options')) {
|
||||
wp_die('权限不足');
|
||||
}
|
||||
|
||||
// 获取小米 Mimo 配置
|
||||
$config = argon_get_active_api_config('summary');
|
||||
|
||||
if ($config['provider'] !== 'xiaomi') {
|
||||
echo '当前活动 API 不是小米 Mimo';
|
||||
exit;
|
||||
}
|
||||
|
||||
// 测试 API 调用
|
||||
$api_key = $config['api_key'];
|
||||
$api_endpoint = !empty($config['api_endpoint'])
|
||||
? $config['api_endpoint']
|
||||
: 'https://api.mimo.xiaomi.com/v1/chat/completions';
|
||||
$model = !empty($config['model']) ? $config['model'] : 'MiMo-V2-Flash';
|
||||
|
||||
$data = [
|
||||
'model' => $model,
|
||||
'messages' => [
|
||||
[
|
||||
'role' => 'user',
|
||||
'content' => '你好,这是一个测试。请回复"测试成功"。'
|
||||
]
|
||||
],
|
||||
'max_tokens' => 100
|
||||
];
|
||||
|
||||
$response = wp_remote_post($api_endpoint, [
|
||||
'headers' => [
|
||||
'Content-Type' => 'application/json',
|
||||
'Authorization' => 'Bearer ' . $api_key
|
||||
],
|
||||
'body' => json_encode($data),
|
||||
'timeout' => 30
|
||||
]);
|
||||
|
||||
echo '<h1>小米 Mimo API 测试</h1>';
|
||||
echo '<h2>请求配置</h2>';
|
||||
echo '<pre>';
|
||||
echo 'API 端点: ' . $api_endpoint . "\n";
|
||||
echo '模型: ' . $model . "\n";
|
||||
echo 'API 密钥: ' . substr($api_key, 0, 12) . '...' . "\n";
|
||||
echo '</pre>';
|
||||
|
||||
echo '<h2>响应结果</h2>';
|
||||
if (is_wp_error($response)) {
|
||||
echo '<p style="color: red;">错误: ' . $response->get_error_message() . '</p>';
|
||||
} else {
|
||||
$status_code = wp_remote_retrieve_response_code($response);
|
||||
$body = wp_remote_retrieve_body($response);
|
||||
|
||||
echo '<p>状态码: ' . $status_code . '</p>';
|
||||
echo '<h3>响应内容</h3>';
|
||||
echo '<pre>' . htmlspecialchars($body) . '</pre>';
|
||||
|
||||
if ($status_code === 200) {
|
||||
$result = json_decode($body, true);
|
||||
if (isset($result['choices'][0]['message']['content'])) {
|
||||
echo '<p style="color: green;">✓ API 调用成功!</p>';
|
||||
echo '<p>AI 回复: ' . htmlspecialchars($result['choices'][0]['message']['content']) . '</p>';
|
||||
}
|
||||
} else {
|
||||
echo '<p style="color: red;">✗ API 调用失败</p>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
```
|
||||
|
||||
**检查点**:
|
||||
- [ ] API 返回 200 状态码
|
||||
- [ ] 响应包含有效的 JSON
|
||||
- [ ] 能够正确解析 AI 回复
|
||||
|
||||
**常见问题**:
|
||||
1. **401 Unauthorized**: API 密钥无效或过期
|
||||
2. **403 Forbidden**: API 密钥没有权限
|
||||
3. **404 Not Found**: API 端点错误
|
||||
4. **429 Too Many Requests**: 超过速率限制
|
||||
5. **500 Internal Server Error**: 服务器错误
|
||||
|
||||
---
|
||||
|
||||
### 5. 向后兼容性测试
|
||||
|
||||
**测试场景**: 确保旧代码仍然能正常工作
|
||||
|
||||
**测试步骤**:
|
||||
|
||||
1. **测试旧的 API 获取函数**:
|
||||
```php
|
||||
// 在 test-unified-api-system.php 中已包含
|
||||
$old_config = argon_get_ai_provider_config('openai');
|
||||
```
|
||||
|
||||
**检查点**:
|
||||
- [ ] 函数返回有效配置
|
||||
- [ ] 配置包含 api_key, api_endpoint, model, provider
|
||||
- [ ] 如果新系统有数据,优先使用新系统
|
||||
- [ ] 如果新系统无数据,回退到旧系统
|
||||
|
||||
2. **测试多 API 管理函数**:
|
||||
```php
|
||||
// 旧的多 API 函数应该仍然可用
|
||||
$openai_apis = argon_get_provider_apis('openai');
|
||||
$active_api = argon_get_active_api('openai');
|
||||
```
|
||||
|
||||
**检查点**:
|
||||
- [ ] 旧函数仍然可用
|
||||
- [ ] 返回的数据格式正确
|
||||
|
||||
---
|
||||
|
||||
### 6. 错误日志检查
|
||||
|
||||
**位置**:
|
||||
- WordPress 调试日志: `wp-content/debug.log`
|
||||
- 服务器错误日志: 根据服务器配置
|
||||
|
||||
**检查内容**:
|
||||
- [ ] 没有 PHP Fatal Error
|
||||
- [ ] 没有 PHP Warning(除非是已知的)
|
||||
- [ ] 没有 AI API 调用错误
|
||||
- [ ] 没有数据迁移错误
|
||||
|
||||
**如何启用调试**:
|
||||
在 `wp-config.php` 中添加:
|
||||
```php
|
||||
define('WP_DEBUG', true);
|
||||
define('WP_DEBUG_LOG', true);
|
||||
define('WP_DEBUG_DISPLAY', false);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 测试结果记录
|
||||
|
||||
### 系统状态
|
||||
- [ ] ✅ 通过
|
||||
- [ ] ⚠️ 部分通过(记录问题)
|
||||
- [ ] ❌ 失败(记录错误)
|
||||
|
||||
**问题记录**:
|
||||
```
|
||||
问题 1: [描述]
|
||||
- 错误信息:
|
||||
- 复现步骤:
|
||||
- 预期行为:
|
||||
- 实际行为:
|
||||
|
||||
问题 2: [描述]
|
||||
...
|
||||
```
|
||||
|
||||
### AI 功能测试
|
||||
- [ ] ✅ 文章摘要正常
|
||||
- [ ] ✅ 评论审核正常
|
||||
- [ ] ✅ 小米 Mimo 正常
|
||||
|
||||
**问题记录**:
|
||||
```
|
||||
[如有问题,在此记录]
|
||||
```
|
||||
|
||||
### 向后兼容性
|
||||
- [ ] ✅ 旧函数正常工作
|
||||
- [ ] ✅ 数据迁移成功
|
||||
- [ ] ✅ 回退机制正常
|
||||
|
||||
---
|
||||
|
||||
## 🔧 问题排查指南
|
||||
|
||||
### 问题 1: 数据迁移失败
|
||||
|
||||
**症状**: `argon_ai_apis_migrated` 为 'false'
|
||||
|
||||
**排查步骤**:
|
||||
1. 检查是否有旧数据
|
||||
2. 查看错误日志
|
||||
3. 手动执行迁移函数
|
||||
4. 检查数据库权限
|
||||
|
||||
**解决方案**:
|
||||
```php
|
||||
// 手动触发迁移
|
||||
delete_option('argon_ai_apis_migrated');
|
||||
argon_migrate_ai_apis();
|
||||
```
|
||||
|
||||
### 问题 2: API 配置为空
|
||||
|
||||
**症状**: `argon_get_all_apis()` 返回空数组
|
||||
|
||||
**排查步骤**:
|
||||
1. 检查是否有旧配置
|
||||
2. 检查数据迁移状态
|
||||
3. 查看数据库中的 `argon_ai_apis` 选项
|
||||
|
||||
**解决方案**:
|
||||
- 如果有旧配置但未迁移,手动触发迁移
|
||||
- 如果没有旧配置,需要在设置页面添加新配置
|
||||
|
||||
### 问题 3: AI 功能不工作
|
||||
|
||||
**症状**: 文章摘要或评论审核不生成结果
|
||||
|
||||
**排查步骤**:
|
||||
1. 检查是否配置了活动 API
|
||||
2. 检查 API 密钥是否有效
|
||||
3. 查看错误日志
|
||||
4. 测试 API 连通性
|
||||
|
||||
**解决方案**:
|
||||
- 确保设置了活动 API
|
||||
- 验证 API 密钥和端点
|
||||
- 检查网络连接
|
||||
- 查看 API 提供商的状态
|
||||
|
||||
### 问题 4: 小米 Mimo 无法使用
|
||||
|
||||
**可能原因**:
|
||||
1. API 密钥格式错误
|
||||
2. API 端点错误
|
||||
3. 模型名称错误
|
||||
4. 网络连接问题
|
||||
5. API 配额用尽
|
||||
|
||||
**排查步骤**:
|
||||
1. 使用 `test-xiaomi-api.php` 测试
|
||||
2. 检查 API 密钥格式(应该是 `sk-` 开头)
|
||||
3. 确认端点为 `https://api.mimo.xiaomi.com/v1/chat/completions`
|
||||
4. 确认模型为 `MiMo-V2-Flash`
|
||||
5. 查看详细的错误响应
|
||||
|
||||
---
|
||||
|
||||
## ✅ 测试通过标准
|
||||
|
||||
满足以下条件即可进入第三阶段(UI 重构):
|
||||
|
||||
1. **核心功能**:
|
||||
- [x] 所有核心函数正常工作
|
||||
- [x] 数据迁移成功
|
||||
- [x] API 配置正确存储和读取
|
||||
|
||||
2. **AI 功能**:
|
||||
- [ ] 文章摘要正常生成
|
||||
- [ ] 评论审核正常工作
|
||||
- [ ] 至少一个 AI 提供商可用
|
||||
|
||||
3. **向后兼容**:
|
||||
- [x] 旧函数仍然可用
|
||||
- [x] 旧数据已备份
|
||||
- [x] 回退机制正常
|
||||
|
||||
4. **无严重错误**:
|
||||
- [ ] 没有 PHP Fatal Error
|
||||
- [ ] 没有数据丢失
|
||||
- [ ] 没有功能退化
|
||||
|
||||
---
|
||||
|
||||
## 📝 测试完成后的行动
|
||||
|
||||
### 如果测试通过 ✅
|
||||
1. 更新文档,记录测试结果
|
||||
2. 准备进入第三阶段(UI 重构)
|
||||
3. 创建 Git 分支用于 UI 开发
|
||||
|
||||
### 如果测试失败 ❌
|
||||
1. 记录所有问题和错误信息
|
||||
2. 分析问题原因
|
||||
3. 修复问题
|
||||
4. 重新测试
|
||||
5. 确认修复后再进入下一阶段
|
||||
|
||||
---
|
||||
|
||||
## 🔗 相关文件
|
||||
|
||||
- `test-system-status.php` - 快速状态检查
|
||||
- `test-unified-api-system.php` - 详细功能测试
|
||||
- `test-xiaomi-api.php` - 小米 Mimo 专项测试(需创建)
|
||||
- `functions.php` - 核心函数实现
|
||||
- `.kiro/steering/phase-1-complete.md` - 第一阶段总结
|
||||
- `.kiro/steering/ai-refactor-next-steps.md` - 下一步计划
|
||||
|
||||
---
|
||||
|
||||
## 📞 需要帮助?
|
||||
|
||||
如果在测试过程中遇到问题,请提供:
|
||||
1. 测试脚本的完整输出
|
||||
2. WordPress 错误日志内容
|
||||
3. 具体的错误信息和截图
|
||||
4. 复现步骤
|
||||
|
||||
我将帮助您分析和解决问题。
|
||||
@@ -1,210 +0,0 @@
|
||||
# 第三阶段:UI 重构实施计划
|
||||
|
||||
## 📅 开始时间
|
||||
2026-01-26
|
||||
|
||||
## 🎯 实施目标
|
||||
|
||||
完成 settings.php 的 UI 重构,移除旧代码和向后兼容逻辑,实现统一的 AI 功能管理界面。
|
||||
|
||||
## 📋 实施步骤
|
||||
|
||||
### 步骤 1:添加补充的 AJAX 函数到 functions.php
|
||||
|
||||
需要添加的函数:
|
||||
- `argon_ajax_get_unified_api()` - 获取单个 API 配置
|
||||
- `argon_ajax_test_unified_api()` - 测试 API 连通性
|
||||
|
||||
**文件位置**: `tmp/additional-ajax-functions.php`
|
||||
|
||||
**插入位置**: functions.php 的 AJAX 函数区域(约第 8900 行之后)
|
||||
|
||||
### 步骤 2:在 settings.php 中插入新的 AI 功能部分
|
||||
|
||||
**插入位置**: 第 1985 行之前(在"文章功能"分类之前)
|
||||
|
||||
**内容来源**:
|
||||
- `tmp/new-ai-settings-section.php` - HTML 结构
|
||||
- `tmp/new-ai-settings-js.php` - JavaScript 交互代码
|
||||
|
||||
**需要包含的部分**:
|
||||
1. AI 功能 h1 标题
|
||||
2. API 管理 (h2)
|
||||
- 已配置的 API 列表
|
||||
- 添加/编辑 API 表单
|
||||
3. 文章摘要 (h2)
|
||||
- 启用开关
|
||||
- 选择 API
|
||||
- Prompt 设置
|
||||
- 排除文章 ID
|
||||
- 清除缓存按钮
|
||||
4. 评论审核 (h2)
|
||||
- 启用开关
|
||||
- 选择 API
|
||||
- 其他设置(保留原有)
|
||||
|
||||
### 步骤 3:移除旧的 AI 设置代码
|
||||
|
||||
#### 3.1 移除文章功能中的旧 AI 摘要设置
|
||||
**位置**: settings.php 第 1989-2600 行左右
|
||||
|
||||
**需要移除的内容**:
|
||||
- 启用 AI 文章摘要
|
||||
- AI 服务商选择
|
||||
- 10 个提供商的多 API 配置界面
|
||||
- 摘要提示词
|
||||
- 排除文章 ID
|
||||
- 清除缓存按钮
|
||||
|
||||
**保留的内容**:
|
||||
- 其他文章功能设置(脚注、分享、目录等)
|
||||
|
||||
#### 3.2 移除评论设置中的旧 AI 识别部分
|
||||
**位置**: settings.php 第 4665-4900 行左右
|
||||
|
||||
**需要移除的内容**:
|
||||
- 启用 AI 识别
|
||||
- 检测策略
|
||||
- 关键字管理
|
||||
- Prompt 模式等
|
||||
|
||||
**注意**: 这些设置会在新的"评论审核"部分重新添加
|
||||
|
||||
### 步骤 4:更新选项保存逻辑
|
||||
|
||||
**位置**: settings.php 末尾的 `argon_update_themeoptions()` 函数
|
||||
|
||||
**需要移除的保存逻辑**:
|
||||
```php
|
||||
// 移除
|
||||
argon_update_option('argon_ai_summary_provider');
|
||||
|
||||
// 移除所有提供商的 API 配置保存
|
||||
// argon_ai_openai_apis, argon_ai_anthropic_apis 等
|
||||
```
|
||||
|
||||
**需要添加的保存逻辑**:
|
||||
```php
|
||||
// 场景化 API 设置
|
||||
argon_update_option('argon_ai_summary_active_api');
|
||||
argon_update_option('argon_ai_spam_active_api');
|
||||
```
|
||||
|
||||
### 步骤 5:移除 functions.php 中的向后兼容代码
|
||||
|
||||
**需要移除的内容**:
|
||||
|
||||
1. **旧的多 API 管理函数** (约第 7000-7150 行):
|
||||
- `argon_get_provider_apis()`
|
||||
- `argon_get_active_api()`
|
||||
- `argon_add_provider_api()`
|
||||
- `argon_update_provider_api()`
|
||||
- `argon_delete_provider_api()`
|
||||
- `argon_set_active_api()`
|
||||
|
||||
2. **数据迁移函数** (约第 7200-7250 行):
|
||||
- `argon_migrate_ai_apis()`
|
||||
- `add_action('after_setup_theme', 'argon_migrate_ai_apis')`
|
||||
|
||||
3. **argon_get_ai_provider_config() 中的向后兼容逻辑**:
|
||||
- 移除回退到旧系统的代码
|
||||
- 只保留从新系统获取配置的逻辑
|
||||
|
||||
4. **argon_get_active_api_config() 中的向后兼容逻辑**:
|
||||
- 移除最后的回退代码
|
||||
|
||||
**保留的内容**:
|
||||
- 所有统一 API 管理函数
|
||||
- 所有新的 AJAX 函数
|
||||
|
||||
### 步骤 6:清理测试文件
|
||||
|
||||
**可以删除的文件**:
|
||||
- `test-system-status.php`
|
||||
- `test-unified-api-system.php`
|
||||
- `tmp/ai-settings-new-structure.php`
|
||||
- `tmp/new-ai-settings-section.php`
|
||||
- `tmp/new-ai-settings-js.php`
|
||||
- `tmp/additional-ajax-functions.php`
|
||||
|
||||
**保留的文件**:
|
||||
- 所有 steering 文档(作为历史记录)
|
||||
|
||||
## 🔍 验证清单
|
||||
|
||||
### 功能验证
|
||||
- [ ] 可以添加新 API
|
||||
- [ ] 可以编辑 API
|
||||
- [ ] 可以删除 API
|
||||
- [ ] 可以测试 API 连通性
|
||||
- [ ] 可以刷新模型列表
|
||||
- [ ] 文章摘要可以选择 API
|
||||
- [ ] 评论审核可以选择 API
|
||||
- [ ] 不同场景可以使用不同 API
|
||||
- [ ] 清除摘要缓存功能正常
|
||||
|
||||
### 数据验证
|
||||
- [ ] 旧数据已迁移到新系统
|
||||
- [ ] 设置保存后正确存储
|
||||
- [ ] 刷新页面后配置保持
|
||||
- [ ] AI 功能正常工作
|
||||
|
||||
### 界面验证
|
||||
- [ ] 新界面显示正常
|
||||
- [ ] 响应式布局正常
|
||||
- [ ] 交互动画流畅
|
||||
- [ ] 错误提示清晰
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. **备份**: 在每一步之前都要备份文件
|
||||
2. **测试**: 每完成一步都要测试功能
|
||||
3. **Git**: 每完成一个步骤就提交一次
|
||||
4. **回滚**: 如果出现问题,立即回滚到上一个提交
|
||||
|
||||
## 📊 预计时间
|
||||
|
||||
- 步骤 1: 10 分钟
|
||||
- 步骤 2: 30 分钟
|
||||
- 步骤 3: 20 分钟
|
||||
- 步骤 4: 10 分钟
|
||||
- 步骤 5: 20 分钟
|
||||
- 步骤 6: 5 分钟
|
||||
- 测试验证: 30 分钟
|
||||
|
||||
**总计**: 约 2 小时
|
||||
|
||||
## 🎉 完成标志
|
||||
|
||||
当以下条件全部满足时,第三阶段完成:
|
||||
|
||||
1. ✅ 新的 AI 功能界面正常显示
|
||||
2. ✅ 所有 API 管理功能正常工作
|
||||
3. ✅ 文章摘要和评论审核功能正常
|
||||
4. ✅ 旧代码已完全移除
|
||||
5. ✅ 向后兼容代码已移除
|
||||
6. ✅ 所有测试通过
|
||||
7. ✅ Git 提交完成
|
||||
|
||||
## 📝 Git 提交计划
|
||||
|
||||
```
|
||||
commit 1: feat: 添加统一 API 管理的补充 AJAX 函数
|
||||
commit 2: feat: 在 settings.php 中添加新的 AI 功能界面
|
||||
commit 3: refactor: 移除 settings.php 中的旧 AI 设置代码
|
||||
commit 4: refactor: 更新选项保存逻辑
|
||||
commit 5: refactor: 移除 functions.php 中的向后兼容代码
|
||||
commit 6: chore: 清理临时测试文件
|
||||
commit 7: docs: 更新 AI 设置重构完成文档
|
||||
```
|
||||
|
||||
## 🔗 相关文件
|
||||
|
||||
- `functions.php` - 核心函数
|
||||
- `settings.php` - 设置页面
|
||||
- `tmp/additional-ajax-functions.php` - 补充函数
|
||||
- `tmp/new-ai-settings-section.php` - 新界面 HTML
|
||||
- `tmp/new-ai-settings-js.php` - 新界面 JS
|
||||
- `.kiro/steering/phase-1-complete.md` - 第一阶段总结
|
||||
- `.kiro/steering/phase-2-testing-guide.md` - 第二阶段测试指南
|
||||
- `.kiro/steering/ai-refactor-next-steps.md` - 下一步计划
|
||||
@@ -1,180 +0,0 @@
|
||||
# 设置页优化总结
|
||||
|
||||
## 已完成的优化
|
||||
|
||||
### 阶段一:子分类命名优化 ✅ (commit a9860af)
|
||||
|
||||
已成功优化以下子分类名称,使其更加简洁明确:
|
||||
|
||||
| 原名称 | 新名称 | 优化说明 |
|
||||
|--------|--------|----------|
|
||||
| 各场景验证码 | 场景验证码 | 去除冗余的"各"字 |
|
||||
| 标题 | 顶栏标题 | 增加"顶栏"前缀,更明确 |
|
||||
| 文章内标题样式 | 标题样式 | 去除冗余的"文章内"前缀 |
|
||||
| 左侧栏文章目录 | 文章目录 | 去除冗余的"左侧栏"前缀 |
|
||||
| 文末附加内容 | 文末内容 | 去除冗余的"附加"二字 |
|
||||
| 文章头图 (特色图片) | 文章头图 | 去除括号说明 |
|
||||
| 其他 | 过时提示 | 更明确的功能描述 |
|
||||
|
||||
### 阶段二:删除重复项和结构重组 ✅
|
||||
|
||||
#### 1. 删除重复的日期格式设置 (commit e667a22)
|
||||
- 删除了高级设置中重复的日期格式子分类
|
||||
- 减少16行重复内容
|
||||
|
||||
#### 2. 动画效果重组 (commit c9e2c7d)
|
||||
- 将动画效果从"功能增强"移到"外观样式"
|
||||
- 包含平滑滚动、进入文章动画、Pjax动画三个设置项
|
||||
- 删除杂项中重复的动画效果设置
|
||||
|
||||
#### 3. 删除错误的顶栏设置 (commit 1c615dd)
|
||||
- 删除第685-792行之间错误的顶栏设置标题
|
||||
- 删除错误放置的CDN、子目录、日期格式设置
|
||||
- 减少107行重复内容
|
||||
|
||||
#### 4. 完成结构重组 (commit 2864082)
|
||||
- 在基础设置中添加子目录设置
|
||||
- 创建新的"SEO与性能"分类(第9个分类)
|
||||
- 在SEO与性能中添加SEO、CDN加速、日期格式三个子分类
|
||||
- CDN和日期格式设置已从错误位置移到正确分类
|
||||
|
||||
#### 5. 修正分类编号 (commit ee2976d)
|
||||
- 将验证码与安全的编号从15改为16
|
||||
- 所有一级分类编号现在正确(1-16)
|
||||
|
||||
### 优化效果
|
||||
|
||||
- **提升可读性**:命名更加简洁,用户一眼就能理解功能
|
||||
- **减少冗余**:删除了123行重复内容
|
||||
- **增强明确性**:模糊的命名改为具体的功能描述
|
||||
- **结构更合理**:创建了"SEO与性能"新分类,逻辑更清晰
|
||||
- **保持兼容性**:所有 ID 和 name 属性保持不变
|
||||
|
||||
## 优化后的完整结构
|
||||
|
||||
```
|
||||
1. 基础设置 (section-basic) ✅
|
||||
├── 主题色 (subsection-theme-color)
|
||||
├── 夜间模式 (subsection-dark-mode)
|
||||
└── 子目录 (subsection-subdirectory) [新增]
|
||||
|
||||
2. 外观样式 (section-appearance) ✅
|
||||
├── 卡片样式 (subsection-card-style)
|
||||
├── 字体 (subsection-font)
|
||||
└── 动画效果 (subsection-animation) [从功能增强移入]
|
||||
|
||||
3. 页面布局 (section-layout)
|
||||
└── 整体布局 (subsection-page-layout)
|
||||
|
||||
4. 顶栏设置 (section-toolbar)
|
||||
├── 基本设置 (subsection-toolbar-basic)
|
||||
├── 顶栏标题 (subsection-toolbar-title) [已优化命名]
|
||||
├── 顶栏图标 (subsection-toolbar-icon)
|
||||
├── 顶栏外观 (subsection-toolbar-appearance)
|
||||
└── 自定义链接 (subsection-toolbar-links)
|
||||
|
||||
5. Banner 设置 (section-banner)
|
||||
├── Banner 内容 (subsection-banner-content)
|
||||
├── Banner 外观 (subsection-banner-appearance)
|
||||
└── Banner 动画 (subsection-banner-animation)
|
||||
|
||||
6. 页面背景 (section-background)
|
||||
├── 背景图片 (subsection-background-image)
|
||||
└── 透明度与毛玻璃 (subsection-transparency)
|
||||
|
||||
7. 侧边栏 (section-sidebar)
|
||||
├── 作者信息 (subsection-author-info)
|
||||
├── 扩展功能 (subsection-sidebar-features)
|
||||
└── 博客公告 (subsection-announcement)
|
||||
|
||||
8. 浮动按钮与页脚 (section-fab-footer)
|
||||
├── 浮动操作按钮 (subsection-fab)
|
||||
└── 页脚 (subsection-footer)
|
||||
|
||||
9. SEO 与性能 (section-seo-performance) ✅ [新建]
|
||||
├── SEO (subsection-seo)
|
||||
├── CDN 加速 (subsection-cdn) [从错误位置移入]
|
||||
└── 日期格式 (subsection-date-format) [从错误位置移入]
|
||||
|
||||
10. 文章显示 (section-post-display)
|
||||
├── Meta 信息 (subsection-post-meta)
|
||||
├── 文章头图 (subsection-thumbnail) [已优化命名]
|
||||
├── 标题样式 (subsection-title-style) [已优化命名]
|
||||
└── 过时提示 (subsection-post-other) [已优化命名]
|
||||
|
||||
11. 文章功能 (section-post-features)
|
||||
├── AI 文章摘要 (subsection-ai-summary)
|
||||
├── 脚注引用 (subsection-footnote)
|
||||
├── 分享 (subsection-share)
|
||||
├── 文章目录 (subsection-toc) [已优化命名]
|
||||
├── 赞赏 (subsection-donate)
|
||||
├── 文末内容 (subsection-post-footer) [已优化命名]
|
||||
└── 相似推荐 (subsection-related-posts)
|
||||
|
||||
12. 特殊页面 (section-special-pages)
|
||||
├── 搜索设置 (subsection-search)
|
||||
├── 归档页面 (subsection-archive)
|
||||
└── 友情链接 (subsection-friend-links)
|
||||
|
||||
13. 功能增强 (section-enhancements) ✅
|
||||
├── 代码高亮 (subsection-code-highlight)
|
||||
├── 数学公式 (subsection-math)
|
||||
├── Lazyload (subsection-lazyload)
|
||||
├── 图片放大 (subsection-lightbox)
|
||||
└── Pangu.js (subsection-pangu)
|
||||
[动画效果已移到外观样式]
|
||||
|
||||
14. 高级设置 (section-advanced) ✅
|
||||
├── 自定义脚本 (subsection-scripts)
|
||||
└── 杂项 (subsection-misc)
|
||||
[SEO、CDN、日期格式已移到SEO与性能]
|
||||
|
||||
15. 评论设置 (section-comment)
|
||||
├── 评论分页 (subsection-comment-pagination)
|
||||
├── 发送评论 (subsection-comment-submit)
|
||||
├── 评论功能 (subsection-comment-features)
|
||||
└── 评论区外观 (subsection-comment-appearance)
|
||||
|
||||
16. 验证码与安全 (section-security) ✅
|
||||
├── 验证码设置 (subsection-captcha)
|
||||
├── 场景验证码 (subsection-captcha-scenes) [已优化命名]
|
||||
└── 速率限制 (subsection-rate-limit)
|
||||
```
|
||||
|
||||
## Git 提交历史
|
||||
|
||||
1. **a9860af** - feat: 优化设置页子分类命名
|
||||
2. **e667a22** - feat: 删除高级设置中重复的日期格式设置
|
||||
3. **c9e2c7d** - feat: 将动画效果从功能增强移到外观样式
|
||||
4. **1c615dd** - feat: 删除重复的顶栏设置标题及错误放置的设置项
|
||||
5. **2864082** - feat: 完成设置页结构重组
|
||||
6. **ee2976d** - fix: 修正验证码与安全分类的编号
|
||||
|
||||
## 统计数据
|
||||
|
||||
- **原始文件**: 6670 行
|
||||
- **优化后**: 6757 行
|
||||
- **删除重复内容**: 123 行
|
||||
- **新增内容**: 210 行 (子目录设置 + SEO与性能分类)
|
||||
- **优化的子分类**: 7 个
|
||||
- **新建的一级分类**: 1 个 (SEO与性能)
|
||||
- **重组的子分类**: 4 个 (子目录、动画效果、CDN、日期格式)
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **保持兼容性** ✅:所有设置项的 `name` 属性保持不变
|
||||
2. **保持 ID 不变** ✅:所有 `section-*` 和 `subsection-*` ID 保持不变
|
||||
3. **备份文件** ✅:已创建 `settings.php.backup` 备份文件
|
||||
4. **Git 版本控制** ✅:每个修改都有独立的 commit,可随时回滚
|
||||
|
||||
## 文件信息
|
||||
|
||||
- **原始文件**:`settings.php` (6670 行)
|
||||
- **优化后文件**:`settings.php` (6757 行)
|
||||
- **备份文件**:`settings.php.backup`
|
||||
- **优化脚本**:
|
||||
- `optimize_settings.py` (步骤1)
|
||||
- `optimize_settings_step3.py` (步骤2)
|
||||
- `optimize_settings_final.py` (步骤3)
|
||||
- **修改时间**:2026-01-22
|
||||
- **最后提交**:ee2976d
|
||||
@@ -1,126 +0,0 @@
|
||||
# Argon 主题设置页结构优化方案
|
||||
|
||||
## 优化后的分类结构
|
||||
|
||||
```
|
||||
1. 基础设置 (section-basic)
|
||||
├── 主题色 (subsection-theme-color)
|
||||
├── 夜间模式 (subsection-dark-mode)
|
||||
└── 子目录 (subsection-subdirectory)
|
||||
|
||||
2. 外观样式 (section-appearance)
|
||||
├── 卡片样式 (subsection-card-style)
|
||||
├── 字体 (subsection-font)
|
||||
└── 动画效果 (subsection-animation)
|
||||
|
||||
3. 页面布局 (section-layout)
|
||||
└── 整体布局 (subsection-page-layout)
|
||||
|
||||
4. 顶栏设置 (section-toolbar)
|
||||
├── 基本设置 (subsection-toolbar-basic)
|
||||
├── 顶栏标题 (subsection-toolbar-title)
|
||||
├── 顶栏图标 (subsection-toolbar-icon)
|
||||
├── 顶栏外观 (subsection-toolbar-appearance)
|
||||
└── 自定义链接 (subsection-toolbar-links)
|
||||
|
||||
5. Banner 设置 (section-banner)
|
||||
├── Banner 内容 (subsection-banner-content)
|
||||
├── Banner 外观 (subsection-banner-appearance)
|
||||
└── Banner 动画 (subsection-banner-animation)
|
||||
|
||||
6. 页面背景 (section-background)
|
||||
├── 背景图片 (subsection-background-image)
|
||||
└── 透明度与毛玻璃 (subsection-transparency)
|
||||
|
||||
7. 侧边栏 (section-sidebar)
|
||||
├── 作者信息 (subsection-author-info)
|
||||
├── 扩展功能 (subsection-sidebar-features)
|
||||
└── 博客公告 (subsection-announcement)
|
||||
|
||||
8. 浮动按钮与页脚 (section-fab-footer)
|
||||
├── 浮动操作按钮 (subsection-fab)
|
||||
└── 页脚 (subsection-footer)
|
||||
|
||||
9. SEO 与性能 (section-seo-performance)
|
||||
├── SEO (subsection-seo)
|
||||
├── CDN 加速 (subsection-cdn)
|
||||
└── 日期格式 (subsection-date-format)
|
||||
|
||||
10. 文章显示 (section-post-display)
|
||||
├── Meta 信息 (subsection-post-meta)
|
||||
├── 文章头图 (subsection-thumbnail)
|
||||
├── 标题样式 (subsection-title-style)
|
||||
└── 过时提示 (subsection-post-other)
|
||||
|
||||
11. 文章功能 (section-post-features)
|
||||
├── AI 文章摘要 (subsection-ai-summary)
|
||||
├── 脚注引用 (subsection-footnote)
|
||||
├── 分享 (subsection-share)
|
||||
├── 文章目录 (subsection-toc)
|
||||
├── 赞赏 (subsection-donate)
|
||||
├── 文末内容 (subsection-post-footer)
|
||||
└── 相似推荐 (subsection-related-posts)
|
||||
|
||||
12. 特殊页面 (section-special-pages)
|
||||
├── 搜索设置 (subsection-search)
|
||||
├── 归档页面 (subsection-archive)
|
||||
└── 友情链接 (subsection-friend-links)
|
||||
|
||||
13. 功能增强 (section-enhancements)
|
||||
├── 代码高亮 (subsection-code-highlight)
|
||||
├── 数学公式 (subsection-math)
|
||||
├── Lazyload (subsection-lazyload)
|
||||
├── 图片放大 (subsection-lightbox)
|
||||
└── Pangu.js (subsection-pangu)
|
||||
|
||||
14. 高级设置 (section-advanced)
|
||||
├── 自定义脚本 (subsection-scripts)
|
||||
└── 杂项 (subsection-misc)
|
||||
|
||||
15. 评论设置 (section-comment)
|
||||
├── 评论分页 (subsection-comment-pagination)
|
||||
├── 发送评论 (subsection-comment-submit)
|
||||
├── 评论功能 (subsection-comment-features)
|
||||
├── AI 垃圾评论识别 (subsection-comment-spam-detection)
|
||||
└── 评论区外观 (subsection-comment-appearance)
|
||||
|
||||
16. 验证码与安全 (section-security)
|
||||
├── 验证码设置 (subsection-captcha)
|
||||
├── 场景验证码 (subsection-captcha-scenes)
|
||||
├── 反馈设置 (subsection-feedback)
|
||||
└── 速率限制 (subsection-rate-limit)
|
||||
```
|
||||
|
||||
## 主要优化点
|
||||
|
||||
### 1. 结构调整
|
||||
- **拆分"高级设置"**:将 SEO、CDN、日期格式独立为"SEO 与性能"分类
|
||||
- **优化"特殊页面"**:将搜索设置提前,更符合使用频率
|
||||
- **细化"验证码与安全"**:增加反馈设置子分类
|
||||
- **完善"评论设置"**:增加 AI 垃圾评论识别子分类
|
||||
|
||||
### 2. 命名优化
|
||||
- "各场景验证码" → "场景验证码"(更简洁)
|
||||
- "标题" → "顶栏标题"(更明确)
|
||||
- "文章内标题样式" → "标题样式"(更简洁)
|
||||
- "左侧栏文章目录" → "文章目录"(更简洁)
|
||||
- "文末附加内容" → "文末内容"(更简洁)
|
||||
- "文章头图 (特色图片)" → "文章头图"(更简洁)
|
||||
- "其他" → "过时提示"(更明确)
|
||||
- "归档外观" → 合并到"归档页面"
|
||||
- "归档配置" → 合并到"归档页面"
|
||||
- "CDN" → "CDN 加速"(更明确)
|
||||
|
||||
### 3. 逻辑优化
|
||||
- 将"子目录"从原"高级设置"移到"基础设置"
|
||||
- 将"动画效果"从"功能增强"移到"外观样式"
|
||||
- 将"日期格式"从原位置移到"SEO 与性能"
|
||||
- 将"自定义脚本"保留在"高级设置"
|
||||
- 新增"评论区外观"子分类
|
||||
|
||||
## 实施说明
|
||||
|
||||
1. 保持所有设置项的 ID 不变,确保兼容性
|
||||
2. 只调整分类标题和层级结构
|
||||
3. 优化后的结构更符合用户使用习惯
|
||||
4. 减少了重复和冗余的分类
|
||||
@@ -1,168 +0,0 @@
|
||||
# Settings.php 完整重组总结
|
||||
|
||||
## 重组完成情况 ✅
|
||||
|
||||
已成功完成设置页的完整重组,从原来的16个分类扩展到18个分类,结构更加合理清晰。
|
||||
|
||||
## 最终分类结构(18个一级分类)
|
||||
|
||||
```
|
||||
1. 基础设置 (section-basic)
|
||||
├── 主题色 (subsection-theme-color)
|
||||
├── 夜间模式 (subsection-dark-mode)
|
||||
└── 子目录 (subsection-subdirectory)
|
||||
|
||||
2. 外观样式 (section-appearance)
|
||||
├── 卡片样式 (subsection-card-style)
|
||||
├── 字体 (subsection-font)
|
||||
└── 动画效果 (subsection-animation)
|
||||
|
||||
3. 页面布局 (section-layout)
|
||||
└── 整体布局 (subsection-page-layout)
|
||||
|
||||
4. 顶栏设置 (section-toolbar)
|
||||
├── 基本设置 (subsection-toolbar-basic)
|
||||
├── 顶栏标题 (subsection-toolbar-title)
|
||||
├── 顶栏图标 (subsection-toolbar-icon)
|
||||
├── 顶栏外观 (subsection-toolbar-appearance)
|
||||
└── 自定义链接 (subsection-toolbar-links)
|
||||
|
||||
5. Banner 设置 (section-banner)
|
||||
├── Banner 内容 (subsection-banner-content)
|
||||
├── Banner 外观 (subsection-banner-appearance)
|
||||
└── Banner 动画 (subsection-banner-animation)
|
||||
|
||||
6. 页面背景 (section-background)
|
||||
├── 背景图片 (subsection-background-image)
|
||||
└── 透明度与毛玻璃 (subsection-transparency)
|
||||
|
||||
7. 侧边栏 (section-sidebar)
|
||||
├── 作者信息 (subsection-author-info)
|
||||
├── 扩展功能 (subsection-sidebar-features)
|
||||
└── 博客公告 (subsection-announcement)
|
||||
|
||||
8. 浮动按钮 (section-fab) [新建]
|
||||
└── 浮动操作按钮 (subsection-fab)
|
||||
|
||||
9. 页脚设置 (section-footer) [新建]
|
||||
└── 页脚 (subsection-footer)
|
||||
|
||||
10. SEO 与性能 (section-seo-performance)
|
||||
├── SEO (subsection-seo)
|
||||
├── CDN 加速 (subsection-cdn)
|
||||
└── 日期格式 (subsection-date-format)
|
||||
|
||||
11. 文章显示 (section-post-display)
|
||||
├── Meta 信息 (subsection-post-meta)
|
||||
└── 文章头图 (subsection-thumbnail)
|
||||
|
||||
12. 文章功能 (section-post-features)
|
||||
├── AI 文章摘要 (subsection-ai-summary)
|
||||
├── 脚注引用 (subsection-footnote)
|
||||
├── 分享 (subsection-share)
|
||||
├── 文章目录 (subsection-toc)
|
||||
├── 赞赏 (subsection-donate)
|
||||
├── 文末内容 (subsection-post-footer)
|
||||
├── 相似推荐 (subsection-related-posts)
|
||||
├── 标题样式 (subsection-title-style) [从文章显示移入]
|
||||
└── 过时提示 (subsection-post-other) [从文章显示移入]
|
||||
|
||||
13. 特殊页面 (section-special-pages)
|
||||
├── 搜索设置 (subsection-search)
|
||||
├── 归档页面 (subsection-archive)
|
||||
└── 友情链接 (subsection-friend-links)
|
||||
|
||||
14. 功能增强 (section-enhancements)
|
||||
├── 代码高亮 (subsection-code-highlight)
|
||||
├── 数学公式 (subsection-math)
|
||||
├── Lazyload (subsection-lazyload)
|
||||
├── 图片放大 (subsection-lightbox)
|
||||
└── Pangu.js (subsection-pangu)
|
||||
|
||||
15. 高级设置 (section-advanced)
|
||||
├── 自定义脚本 (subsection-scripts)
|
||||
└── 杂项 (subsection-misc)
|
||||
|
||||
16. 评论设置 (section-comment)
|
||||
├── 评论分页 (subsection-comment-pagination)
|
||||
├── 发送评论 (subsection-comment-submit)
|
||||
├── 评论功能 (subsection-comment-features) [从验证码与安全移入]
|
||||
├── AI 垃圾评论识别 (subsection-comment-spam-detection) [从验证码与安全移入]
|
||||
└── 评论区外观 (subsection-comment-appearance) [从验证码与安全移入]
|
||||
|
||||
17. 验证码设置 (section-captcha) [重命名]
|
||||
├── 验证码配置 (subsection-captcha)
|
||||
└── 场景验证码 (subsection-captcha-scenes)
|
||||
|
||||
18. 反馈与安全 (section-feedback-security) [新建]
|
||||
├── 反馈设置 (subsection-feedback) [从验证码与安全移入]
|
||||
└── 速率限制 (subsection-rate-limit) [从验证码与安全移入]
|
||||
```
|
||||
|
||||
## 主要改进
|
||||
|
||||
### 1. 拆分混杂的分类
|
||||
- **浮动按钮与页脚** → 拆分为"浮动按钮"和"页脚设置"两个独立分类
|
||||
- **验证码与安全** → 拆分为"验证码设置"和"反馈与安全"两个分类
|
||||
|
||||
### 2. 移动错位的设置项
|
||||
- 评论功能、AI垃圾评论识别、评论区外观 → 从"验证码与安全"移到"评论设置"
|
||||
- 标题样式、过时提示 → 从"文章显示"移到"文章功能"
|
||||
- 页脚设置 → 从"特殊页面"移到独立的"页脚设置"分类
|
||||
|
||||
### 3. 删除重复内容
|
||||
- 删除重复的子目录设置(32行)
|
||||
- 删除特殊页面中错误的页脚设置(15行)
|
||||
- 删除重复的CDN和日期格式设置(88行)
|
||||
- 总计删除135行重复内容
|
||||
|
||||
### 4. 优化命名
|
||||
- "验证码设置"子分类 → "验证码配置"(更明确)
|
||||
- "CDN" → "CDN 加速"
|
||||
- 7个子分类命名优化(场景验证码、顶栏标题等)
|
||||
|
||||
## Git 提交历史
|
||||
|
||||
1. **c68d47b** - fix: 删除SEO与性能分类中重复的CDN和日期格式设置
|
||||
2. **3104cad** - fix: 删除重复的子目录和页脚设置
|
||||
3. **0fb1d11** - feat: 拆分浮动按钮与页脚为独立分类
|
||||
4. **b471bbc** - feat: 完成设置页完整重组
|
||||
|
||||
## 统计数据
|
||||
|
||||
- **原始文件**: 6670 行
|
||||
- **最终文件**: 6655 行
|
||||
- **删除重复内容**: 135 行
|
||||
- **新增内容**: 120 行(新分类标题和页脚设置)
|
||||
- **净减少**: 15 行
|
||||
- **优化的子分类**: 8 个
|
||||
- **新建的一级分类**: 3 个(浮动按钮、页脚设置、反馈与安全)
|
||||
- **重命名的一级分类**: 1 个(验证码与安全 → 验证码设置)
|
||||
- **重组的子分类**: 7 个
|
||||
|
||||
## 优化效果
|
||||
|
||||
### 逻辑更清晰
|
||||
- 每个分类职责单一,不再混杂不相关的设置
|
||||
- 相关设置集中在一起,便于查找和管理
|
||||
|
||||
### 结构更合理
|
||||
- 18个一级分类,每个分类包含2-5个子分类
|
||||
- 分类层级清晰,符合用户使用习惯
|
||||
|
||||
### 无重复项
|
||||
- 删除所有重复的设置项和分类标题
|
||||
- 每个设置项只出现一次,避免混淆
|
||||
|
||||
### 保持兼容
|
||||
- 所有设置项的 `name` 属性保持不变
|
||||
- 所有 ID (`section-*` 和 `subsection-*`) 保持不变
|
||||
- 不影响现有配置和功能
|
||||
|
||||
## 文件信息
|
||||
|
||||
- **最终文件**: `settings.php` (6655 行)
|
||||
- **备份文件**: `settings.php.backup`
|
||||
- **重组脚本**: `reorganize_comment_settings.py`
|
||||
- **完成时间**: 2026-01-22
|
||||
- **最后提交**: b471bbc
|
||||
@@ -1,168 +0,0 @@
|
||||
# Settings.php 完整重新分类方案
|
||||
|
||||
## 当前问题分析
|
||||
|
||||
### 1. 分类不合理
|
||||
- **验证码与安全**:包含了评论功能、评论外观等不相关设置
|
||||
- **特殊页面**:页脚设置被错误放置在这里(出现两次)
|
||||
- **浮动按钮与页脚**:页脚设置应该独立
|
||||
- **文章显示 vs 文章功能**:标题样式、过时提示放在了文章显示中,应该在文章功能
|
||||
|
||||
### 2. 重复的子分类
|
||||
- `subsection-subdirectory` 出现两次(第294行和第310行)
|
||||
- `subsection-footer` 出现两次(第2539行和第2555行)
|
||||
- `subsection-comment-features` 在验证码与安全分类中(第3766行),应该在评论设置中
|
||||
|
||||
### 3. 设置项错位
|
||||
- 评论功能设置(Markdown、编辑等)在"验证码与安全"中
|
||||
- 评论外观设置在"验证码与安全"中
|
||||
- AI 垃圾评论识别在"验证码与安全"中,应该在"评论设置"中
|
||||
- 页脚设置在"特殊页面"中
|
||||
|
||||
## 新的分类结构方案
|
||||
|
||||
```
|
||||
1. 基础设置 (section-basic)
|
||||
├── 主题色 (subsection-theme-color)
|
||||
├── 夜间模式 (subsection-dark-mode)
|
||||
└── 子目录 (subsection-subdirectory)
|
||||
|
||||
2. 外观样式 (section-appearance)
|
||||
├── 卡片样式 (subsection-card-style)
|
||||
├── 字体 (subsection-font)
|
||||
└── 动画效果 (subsection-animation)
|
||||
|
||||
3. 页面布局 (section-layout)
|
||||
└── 整体布局 (subsection-page-layout)
|
||||
|
||||
4. 顶栏设置 (section-toolbar)
|
||||
├── 基本设置 (subsection-toolbar-basic)
|
||||
├── 顶栏标题 (subsection-toolbar-title)
|
||||
├── 顶栏图标 (subsection-toolbar-icon)
|
||||
├── 顶栏外观 (subsection-toolbar-appearance)
|
||||
└── 自定义链接 (subsection-toolbar-links)
|
||||
|
||||
5. Banner 设置 (section-banner)
|
||||
├── Banner 内容 (subsection-banner-content)
|
||||
├── Banner 外观 (subsection-banner-appearance)
|
||||
└── Banner 动画 (subsection-banner-animation)
|
||||
|
||||
6. 页面背景 (section-background)
|
||||
├── 背景图片 (subsection-background-image)
|
||||
└── 透明度与毛玻璃 (subsection-transparency)
|
||||
|
||||
7. 侧边栏 (section-sidebar)
|
||||
├── 作者信息 (subsection-author-info)
|
||||
├── 扩展功能 (subsection-sidebar-features)
|
||||
└── 博客公告 (subsection-announcement)
|
||||
|
||||
8. 浮动按钮 (section-fab) [新建]
|
||||
└── 浮动操作按钮 (subsection-fab)
|
||||
|
||||
9. 页脚设置 (section-footer) [新建]
|
||||
└── 页脚 (subsection-footer)
|
||||
|
||||
10. SEO 与性能 (section-seo-performance)
|
||||
├── SEO (subsection-seo)
|
||||
├── CDN 加速 (subsection-cdn)
|
||||
└── 日期格式 (subsection-date-format)
|
||||
|
||||
11. 文章显示 (section-post-display)
|
||||
├── Meta 信息 (subsection-post-meta)
|
||||
└── 文章头图 (subsection-thumbnail)
|
||||
|
||||
12. 文章功能 (section-post-features)
|
||||
├── AI 文章摘要 (subsection-ai-summary)
|
||||
├── 脚注引用 (subsection-footnote)
|
||||
├── 分享 (subsection-share)
|
||||
├── 文章目录 (subsection-toc)
|
||||
├── 赞赏 (subsection-donate)
|
||||
├── 文末内容 (subsection-post-footer)
|
||||
├── 相似推荐 (subsection-related-posts)
|
||||
├── 标题样式 (subsection-title-style) [从文章显示移入]
|
||||
└── 过时提示 (subsection-post-other) [从文章显示移入]
|
||||
|
||||
13. 特殊页面 (section-special-pages)
|
||||
├── 搜索设置 (subsection-search) [新增]
|
||||
├── 归档页面 (subsection-archive)
|
||||
└── 友情链接 (subsection-friend-links)
|
||||
|
||||
14. 功能增强 (section-enhancements)
|
||||
├── 代码高亮 (subsection-code-highlight)
|
||||
├── 数学公式 (subsection-math)
|
||||
├── Lazyload (subsection-lazyload)
|
||||
├── 图片放大 (subsection-lightbox)
|
||||
└── Pangu.js (subsection-pangu)
|
||||
|
||||
15. 评论设置 (section-comment)
|
||||
├── 评论分页 (subsection-comment-pagination)
|
||||
├── 发送评论 (subsection-comment-submit)
|
||||
├── 评论功能 (subsection-comment-features) [从验证码与安全移入]
|
||||
├── AI 垃圾评论识别 (subsection-comment-spam-detection) [从验证码与安全移入]
|
||||
└── 评论区外观 (subsection-comment-appearance) [从验证码与安全移入]
|
||||
|
||||
16. 验证码设置 (section-captcha) [重命名]
|
||||
├── 验证码配置 (subsection-captcha)
|
||||
└── 场景验证码 (subsection-captcha-scenes)
|
||||
|
||||
17. 反馈与安全 (section-feedback-security) [新建]
|
||||
├── 反馈设置 (subsection-feedback) [从验证码与安全移入]
|
||||
└── 速率限制 (subsection-rate-limit) [从验证码与安全移入]
|
||||
|
||||
18. 高级设置 (section-advanced)
|
||||
├── 自定义脚本 (subsection-scripts)
|
||||
└── 杂项 (subsection-misc)
|
||||
```
|
||||
|
||||
## 主要调整说明
|
||||
|
||||
### 1. 拆分"浮动按钮与页脚"
|
||||
- 浮动按钮 → 独立为"浮动按钮"分类
|
||||
- 页脚 → 独立为"页脚设置"分类
|
||||
|
||||
### 2. 拆分"验证码与安全"
|
||||
- 验证码相关 → "验证码设置"分类
|
||||
- 反馈和速率限制 → "反馈与安全"分类
|
||||
- 评论功能/外观/AI识别 → 移到"评论设置"分类
|
||||
|
||||
### 3. 优化"文章显示"和"文章功能"
|
||||
- 文章显示:只保留 Meta 信息和头图(纯展示相关)
|
||||
- 文章功能:包含所有功能性设置(标题样式、过时提示等)
|
||||
|
||||
### 4. 完善"特殊页面"
|
||||
- 添加搜索设置子分类
|
||||
- 移除错误的页脚设置
|
||||
|
||||
### 5. 删除重复项
|
||||
- 删除重复的子目录设置
|
||||
- 删除重复的页脚设置
|
||||
- 删除重复的评论功能设置
|
||||
|
||||
## 实施步骤
|
||||
|
||||
### 步骤 1:删除重复的子分类
|
||||
1. 删除第310-324行的重复子目录设置
|
||||
2. 删除第2555-2569行的重复页脚设置
|
||||
|
||||
### 步骤 2:创建新的一级分类
|
||||
1. 拆分"浮动按钮与页脚"为两个独立分类
|
||||
2. 创建"反馈与安全"分类
|
||||
|
||||
### 步骤 3:移动设置项
|
||||
1. 将评论功能、AI垃圾评论识别、评论外观从"验证码与安全"移到"评论设置"
|
||||
2. 将标题样式、过时提示从"文章显示"移到"文章功能"
|
||||
3. 将反馈设置、速率限制从"验证码与安全"移到"反馈与安全"
|
||||
|
||||
### 步骤 4:重命名分类
|
||||
1. "验证码与安全" → "验证码设置"
|
||||
|
||||
### 步骤 5:调整编号
|
||||
1. 重新编号所有一级分类(1-18)
|
||||
|
||||
## 优化效果
|
||||
|
||||
- **逻辑更清晰**:每个分类职责单一,不再混杂
|
||||
- **易于查找**:相关设置集中在一起
|
||||
- **结构合理**:18个一级分类,每个分类3-5个子分类
|
||||
- **无重复项**:删除所有重复的设置项
|
||||
- **保持兼容**:所有 ID 和 name 属性保持不变
|
||||
@@ -1,71 +0,0 @@
|
||||
# Settings.php 重组实施计划
|
||||
|
||||
## 当前问题
|
||||
|
||||
1. **重复的分类标题**:
|
||||
- 第611行:`<!-- ========== 4. 顶栏设置 ==========` (错误位置,实际是 CDN/子目录/日期格式)
|
||||
- 第718行:`<!-- ========== 4. 顶栏设置 ==========` (正确位置)
|
||||
- 第1574行:`<!-- ========== 9. 高级设置 ==========` (第一次出现,包含 SEO)
|
||||
- 第3018行:`<!-- ========== 14. 高级设置 ==========` (第二次出现,包含自定义脚本)
|
||||
|
||||
2. **结构混乱**:
|
||||
- CDN、子目录、日期格式被错误地放在"顶栏设置"标题下
|
||||
- 动画效果在"功能增强"中,应该在"外观样式"中
|
||||
|
||||
## 修改步骤
|
||||
|
||||
### 步骤 1:删除第611-717行的错误内容
|
||||
这部分包含:
|
||||
- 错误的"顶栏设置"标题
|
||||
- CDN 设置
|
||||
- 子目录设置
|
||||
- 日期格式设置
|
||||
|
||||
这些内容需要移动到正确的位置。
|
||||
|
||||
### 步骤 2:重新组织分类顺序
|
||||
|
||||
**新的分类顺序**:
|
||||
1. 基础设置 (93行) - 保持不变,添加子目录
|
||||
2. 外观样式 (294行) - 添加动画效果
|
||||
3. 页面布局 (383行) - 保持不变
|
||||
4. 顶栏设置 (718行) - 保持不变
|
||||
5. Banner 设置 (959行) - 保持不变
|
||||
6. 页面背景 (1176行) - 保持不变
|
||||
7. 侧边栏 (1350行) - 保持不变
|
||||
8. 浮动按钮与页脚 (1501行) - 保持不变
|
||||
9. **SEO 与性能** (新建) - 包含 SEO、CDN、日期格式
|
||||
10. 文章显示 (1607行) - 保持不变
|
||||
11. 文章功能 (1884行) - 保持不变
|
||||
12. 特殊页面 (2411行) - 调整子分类顺序
|
||||
13. 功能增强 (2484行) - 移除动画效果
|
||||
14. 高级设置 (3018行) - 只保留自定义脚本和杂项
|
||||
15. 评论设置 (3169行) - 添加 AI 垃圾评论识别子分类
|
||||
16. 验证码与安全 (3296行) - 添加反馈设置子分类
|
||||
|
||||
### 步骤 3:子分类名称优化
|
||||
|
||||
需要修改的子分类名称:
|
||||
- `各场景验证码` → `场景验证码`
|
||||
- `标题` → `顶栏标题` (在顶栏设置中)
|
||||
- `文章内标题样式` → `标题样式`
|
||||
- `左侧栏文章目录` → `文章目录`
|
||||
- `文末附加内容` → `文末内容`
|
||||
- `文章头图 (特色图片)` → `文章头图`
|
||||
- `其他` → `过时提示` (在文章显示中)
|
||||
- `CDN` → `CDN 加速`
|
||||
|
||||
## 实施方式
|
||||
|
||||
由于文件结构复杂且存在重复,建议采用以下方式:
|
||||
|
||||
1. **手动编辑关键部分**:删除重复的分类标题
|
||||
2. **批量替换简单内容**:子分类名称优化
|
||||
3. **验证修改结果**:确保所有设置项都在正确的分类下
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 保持所有设置项的 `name` 属性不变
|
||||
2. 保持所有 ID 不变(`section-*` 和 `subsection-*`)
|
||||
3. 不修改任何设置项的逻辑代码
|
||||
4. 只调整分类标题和层级结构
|
||||
Reference in New Issue
Block a user