一、系统概述
1.1 功能说明
本系统通过 Discuz 分类信息功能,实现文档帖子在目录树和版块列表页的统一排序,确保两处展示顺序一致。
1.2 核心配置
| 配置项 |
说明 |
值 |
| 分类信息 |
文档管理 |
sortid=5 |
| 排序权重 |
控制帖子排序 |
optionid=21 (sort_order) |
| 配置帖标识 |
判断是否为配置帖 |
optionid=22 (is_config) |
| 目录树展示 |
配置帖是否展示在目录树 |
optionid=23 (show_in_tree) |
选项值说明:
- is_config:
配置文档 / 普通文档
- show_in_tree:
展示在目录 / 不展示
1.3 帖子分类逻辑
┌─────────────────────────────────────────────────────────────┐
│ 帖子类型判断流程 │
└─────────────────────────────────────────────────────────────┘
帖子置顶状态 (displayorder > 0)
│
├── 是配置帖 (is_config = 配置文档)
│ ├── show_in_tree = 展示在目录 → 展示在 0 级目录(可控制)
│ └── show_in_tree = 不展示 → 不展示在目录树(隐藏配置)
│
├── 非配置帖 (is_config = 普通文档)
│ └── → 自动展示在 0 级目录(置顶说明帖)
│
└── 普通帖子 (displayorder = 0)
└── → 按 sort_order 排序归入对应目录
二、发帖操作指南
2.1 发布置顶说明帖(0 级目录)
适用场景:发布版块说明、使用指南、公告等需要展示在顶级目录的帖子
操作步骤:
- 点击"发表帖子"
- 选择分类信息:文档管理
- 设置各选项:
- 排序权重 (sort_order):
0(或不填,置顶帖排序优先级高)
- 是否为配置帖 (is_config):普通文档
- 是否展示在目录树 (show_in_tree):
不展示(此项对非配置帖无效,可不填)
- 设置置顶:选择"显示置顶"
- 填写帖子标题和内容,发布
效果:帖子自动展示在目录树 0 级目录(最顶层)
2.2 发布配置帖
适用场景:发布目录配置帖(使用 [DIR] 前缀和 [doc_directory] 标签的配置内容)
操作步骤:
- 点击"发表帖子"
- 选择分类信息:文档管理
- 设置各选项:
- 排序权重 (sort_order):
0(或不填)
- 是否为配置帖 (is_config):配置文档
- 是否展示在目录树 (show_in_tree):根据需求选择
展示在目录 → 配置帖本身展示在 0 级目录
不展示 → 配置帖不展示在目录树(仅配置作用)
- 设置置顶:选择"显示置顶"
- 帖子标题:建议使用
[DIR] 前缀标识(方便识别)
- 帖子内容:使用
[doc_directory] 标签定义目录结构
配置帖内容示例:
[doc_directory]
1 = 开发维护 = 网站开发维护
1-1 = 社创开发 = 社创官网和社区开发
1-2 = 利智官网 = 北京利智官网
2 = 产品文档 = 产品相关文档
[posts]
社创开发 = tid:118,tid:140,tid:137
[/posts]
[/doc_directory]
效果:
- show_in_tree=1:配置帖展示在 0 级目录
- show_in_tree=0:配置帖不展示在目录树
2.3 发布普通文档帖
适用场景:发布具体的文档内容帖子
操作步骤:
- 点击"发表帖子"
- 选择分类信息:文档管理
- 设置各选项:
- 排序权重 (sort_order):填写数字,数字越小越靠前
- 如:
1、2、3...
- 不填则默认为
99(排在最后)
- 是否为配置帖 (is_config):普通文档
- 是否展示在目录树 (show_in_tree):
不展示(此项对普通帖子无效,可不填)
- 不需要置顶(保持默认)
- 添加标签:
#目录_xxx(xxx 与配置帖中的标签名一致)
- 填写帖子标题和内容,发布
效果:帖子按 sort_order 值排序,归入对应的目录
三、编辑帖子操作
3.1 修改帖子排序
适用场景:调整帖子在目录中的展示顺序
操作步骤:
- 进入帖子,点击"编辑"
- 在分类信息区域修改排序权重 (sort_order)
- 提交保存
注意:修改后目录树和版块列表页的排序会同步更新
3.2 切换帖子类型
将普通帖子改为配置帖:
- 进入帖子,点击"编辑"
- 修改是否为配置帖 (is_config) 为"配置文档"
- 设置置顶状态
- 提交保存
将配置帖改为普通帖子:
- 进入帖子,点击"编辑"
- 修改是否为配置帖 (is_config) 为"普通文档"
- 取消置顶状态
- 提交保存
3.3 控制配置帖展示
适用场景:配置帖只想保留配置功能,不想展示在目录树中
操作步骤:
- 进入配置帖,点击"编辑"
- 修改是否展示在目录树 (show_in_tree) 为"不展示"
- 提交保存
效果:配置帖不再展示在目录树 0 级目录,但配置功能仍然有效
四、批量操作
4.1 批量修改排序
适用场景:批量调整一批帖子的排序
操作方法:
- 进入版块帖子列表
- 勾选需要修改的帖子
- 点击"批量管理"
- 选择"移动帖子"或其他操作(分类信息需要单独编辑)
建议:批量修改分类信息需要逐个编辑,建议提前规划好排序值
4.2 批量迁移现有帖子
如果已有大量帖子需要添加分类信息,可使用数据迁移脚本:
- 访问:
http://您的域名/tools/migrate_classification_data.php
- 脚本会自动为所有帖子初始化分类信息
- 执行完成后删除脚本
初始化规则:
[DIR] 开头的置顶帖 → is_config=配置文档,show_in_tree=展示在目录,sort_order=0
- 其他置顶帖 → is_config=普通文档,sort_order=0
- 普通帖子 → is_config=普通文档,sort_order=99, show_in_tree=不展示
五、常见问题
Q1:帖子在目录树中找不到?
检查项:
- 帖子是否添加了正确的标签(如
#目录_社创开发)
- 配置帖中是否定义了该标签对应的目录
- 帖子是否被错误地设置为配置帖(is_config=配置文档 会变成 0 级目录)
Q2:目录树和版块列表页排序不一致?
检查项:
- 确认帖子是否设置了 sort_order 值
- 确认置顶状态是否正确
- 清除缓存后重试
Q3:配置帖修改后目录树没有更新?
检查项:
- 清除论坛缓存
- 确认配置帖内容格式正确
- 确认配置帖是否为置顶状态
Q4:如何隐藏配置帖本身?
操作方法:
- 编辑配置帖
- 将 是否展示在目录树 (show_in_tree) 设置为"否"
- 提交保存
Q5:sort_order 值相同怎么办?
处理方式:
- sort_order 相同的帖子,按发帖时间排序
- 建议为每个帖子设置唯一的 sort_order 值
六、权限说明
6.1 权限控制
| 操作 |
版主 |
管理员 |
普通用户 |
| 设置 sort_order |
✓ |
✓ |
✓ |
| 设置 is_config |
✗ |
✓ |
✗ |
| 设置 show_in_tree |
✗ |
✓ |
✗ |
| 编辑他人帖子分类信息 |
✓ |
✓ |
✗ |
注意:show_in_tree 和 is_config 建议设置为仅管理员可修改,避免配置混乱
七、最佳实践
7.1 排序值规划建议
sort_order 值范围建议:
置顶说明帖:0
配置帖:0
普通文档帖:10, 20, 30, 40...(预留间隔,方便后续插入)
7.2 配置帖管理建议
- 固定配置帖:每个版块只设置一个配置帖
- 标识清晰:配置帖标题使用
[DIR] 前缀
- show_in_tree=0:配置帖建议设置为不展示,保持目录简洁
- 定期备份:配置帖内容定期备份,避免误删
7.3 标签命名规范
推荐格式:#目录_分类名
示例:
#目录_开发维护
#目录_产品文档
#目录_用户手册
#目录_技术手册
八、附录
8.1 数据表结构
pre_forum_typeoptionvar:存储分类信息值
pre_forum_typeoption:分类信息选项定义
pre_forum_thread:帖子表
文档版本:1.0
更新日期:2026-02-28