概览对比
| 对比项 | [showclasstemp] |
[listshowclass] |
|---|---|---|
| 后端函数 | sys_ShowClassByTemp() |
sys_ForShowSonClass() |
| 渲染方式 | 函数内直接拼接模板 | 调用 sys_GetShowClassMore() 逐条渲染 |
| SQL 查询 | 固定 bclassid='$classid' |
支持 classid in (...) 或 bclassid='$classid' |
| 多栏目 ID | ❌ 不支持 | ✅ 支持逗号分隔多个 ID |
| 父级变量 | 3 个 | 7 个 |
| 子级变量 | 6 个 | 6 个 |
1. 多栏目固定调用
listshowclass 的父栏目 ID 支持逗号分隔传入多个值,例如:
[listshowclass]1,3,5,模板ID,是否显示信息数,显示栏目数[/listshowclass]
可以从多个不相关的栏目同时取子栏目。而 showclasstemp 只能传单个父栏目 ID。
// sys_ForShowSonClass 中的多栏目处理
if(strstr($classid,","))
{
$where='classid in ('.$classid.')';
}
else
{
$where="bclassid='$classid'";
}
2. 父级变量差异
listshowclass 的 sys_GetShowClassMore() 比 showclasstemp 多替换了 4 个父栏目变量:
| 变量 | 说明 | showclasstemp |
listshowclass |
|---|---|---|---|
[!--bclassname--] |
父栏目名称 | ✅ | ✅ |
[!--bclassurl--] |
父栏目链接 | ✅ | ✅ |
[!--bclassid--] |
父栏目 ID | ✅ | ✅ |
[!--bclassimg--] |
父栏目图片 | ❌ | ✅ |
[!--bintro--] |
父栏目简介 | ❌ | ✅ |
[!--bnum--] |
父栏目信息数 | ❌ | ✅ |
[!--bno--] |
父栏目序号 | ❌ | ✅ |
showclasstemp 父级变量替换逻辑
// sys_ShowClassByTemp 仅替换 3 个父级变量
$listtemp=str_replace("[!--bclassname--]",$bclassname,$listtemp);
$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
$listtemp=str_replace("[!--bclassid--]",$classid,$listtemp);
listshowclass 父级变量替换逻辑
// sys_GetShowClassMore 额外替换 4 个父级变量
$listtemp=str_replace("[!--bclassname--]",$bcr['classname'],$listtemp);
$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
$listtemp=str_replace("[!--bclassid--]",$bclassid,$listtemp);
$listtemp=str_replace("[!--bclassimg--]",$bclassimg,$listtemp); // +
$listtemp=str_replace("[!--bintro--]",nl2br($bcr['intro']),$listtemp); // +
$listtemp=str_replace("[!--bno--]",$bno,$listtemp); // +
$listtemp=str_replace("[!--bnum--]",$bnum,$listtemp); // +
3. 子栏目列表变量(两者相同)
| 变量 | 说明 |
|---|---|
[!--classurl--] |
子栏目链接 |
[!--classname--] |
子栏目名称 |
[!--classid--] |
子栏目 ID |
[!--classimg--] |
子栏目图片 |
[!--intro--] |
子栏目简介 |
[!--num--] |
子栏目信息数 |
[!--no--] |
子栏目序号 |
4. 标签语法(完全相同)
[showclasstemp]父栏目ID,标签模板ID,是否显示栏目信息数,显示栏目数[/showclasstemp]
[listshowclass]父栏目ID,标签模板ID,是否显示栏目信息数,显示栏目数[/listshowclass]
参数说明:
| 参数 | 说明 |
|---|---|
| 父栏目 ID | 0 = 所有一级栏目, selfinfo = 当前栏目下级, 多个 ID 用逗号分隔(仅 listshowclass) |
| 标签模板 ID | 后台标签模板 ID |
| 是否显示栏目信息数 | 0 = 不显示, 1 = 显示 |
| 显示栏目数 | 0 = 不限制 |
5. 选用建议
| 场景 | 推荐标签 |
|---|---|
| 显示单个栏目的子栏目(简单导航) | showclasstemp 够用 |
| 需要同时调用多个栏目的子栏目(组合导航) | listshowclass |
| 需要在父级展示图片、简介等信息 | listshowclass |
| 只需要栏目名称和链接 | 两者均可 |
结论
listshowclass 是增强版,功能上完全覆盖 showclasstemp:
- ✅ 多栏目 ID 支持
- ✅ 更丰富的父栏目变量
- ✅ 同一套子栏目变量
简单的单栏目导航两者无差别;需要多栏目组合或展示父栏目更多信息时,优先使用 listshowclass。


