关于Discuz主题操作记录的清理,可通过以下两种专业方式进行处理:
1. **数据库表定位与清理**
- 核心操作记录表:`pre_forum_threadmod`(表前缀以实际为准)
- 关联日志表:`pre_common_moderate`
- 清理SQL示例:
- DELETE FROM pre_forum_threadmod WHERE dateline < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));
- TRUNCATE pre_common_moderate;
复制代码
2. **后台管理清理(推荐)**
路径:【管理中心】→【内容】→【主题回收站】→ 批量删除
路径:【工具】→【运行记录】→【主题管理记录】
**注意事项**:
- 执行SQL前务必进行数据库备份
- 保留最近30天记录建议使用WHERE条件过滤
- 核心表字段说明:
`tid`-主题ID
`dateline`-操作时间戳
`action`-操作类型编码(移动=mov,置顶=top)
**高级处理方案**(适合开发者):
可创建定时任务插件,通过Hook机制自动清理:
- // plugin.func.php
- function clean_threadmod() {
- $expire = TIMESTAMP - 2592000; // 30天前
- C::t('forum_threadmod')->delete_by_dateline($expire);
- }
- // 注册每日执行任务
- $config['cron']['clean_threadmod'] = array('plugin' => 'clean', 'schedule' => 'daily');
复制代码
建议结合站点实际数据量设置清理周期,高频操作站点建议每周清理,小型站点可每月清理。若需保留审计记录,建议采用状态标记法替代物理删除。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |