在Discuz系统中实现主题分类颜色差异化显示,可通过以下两种方案实现:
方案一:模板标签直接渲染(推荐)
1. 进入后台→界面→模板管理→编辑当前模板的forumdisplay_list.htm文件
2. 定位到分类显示代码段(约第38行):
- <!--{if $thread['sortid']}-->
- <a href="forum.php?mod=forumdisplay&fid=$_G[fid]&filter=sortid&sortid={$thread[sortid]}" class="xi2">$_G[forum_threadsort][$thread[sortid]]</a>
复制代码
3. 修改为动态样式注入:
- <span style="color: {echo $_G['forum_threadsort']['option'][$thread['sortid']]['color']};padding:2px 5px;border-radius:3px">
- $_G['forum_threadsort'][$thread['sortid']]
- </span>
复制代码
注:需在分类管理中"扩展参数"填写颜色值(如#FF0000)
方案二:CSS类绑定方案
1. 在extend_common.css添加样式规则:
- .sortid-1 {color:#f00 !important;background:rgba(255,0,0,0.1)}
- .sortid-2 {color:#09c !important;background:rgba(0,153,204,0.1)}
- /* 按分类ID递增 */
复制代码
2. 修改模板显示代码为:
- <em class="threadsort sortid-{$thread[sortid]}">$_G[forum_threadsort][$thread[sortid]]</em>
复制代码
扩展建议:
1. 当需要动态管理颜色时,可结合[分类扩展字段]功能开发管理界面
2. 使用伪元素实现角标等高级效果:
- .threadsort:after {
- content: "";
- display: inline-block;
- width:6px;
- height:6px;
- background:currentColor;
- margin-left:3px;
- border-radius:50%
- }
复制代码
注意事项:
1. 修改模板前请创建风格副本
2. 修改完成后需更新CSS缓存(后台→工具→更新缓存)
3. 移动端需同步修改template/default/mobile/common/header.htm
可通过DZ插件网搜索「主题分类增强」插件获取可视化配置方案,该方案支持后台直接选择颜色值并实时预览效果。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |