
在使用 PHPCMS 建站时,栏目页调用子栏目内容是一个常见需求,尤其适用于分类清晰、层级明确的网站结构。比如在“产品中心”主栏目下展示各个子类别的缩略图和简介。实现这一功能的关键是利用 PHPCMS 的标签系统,结合 get 标签 或 subcat 函数 来获取子栏目信息并输出内容。
1. 使用 subcat 函数调用子栏目
PHPCMS 提供了内置的 subcat 方法用于获取当前栏目的子栏目列表。可以在栏目页模板(如 category.html)中使用以下代码:
{loop subcat($catid) $v}zuojiankuohaophpcnh3><a href=”{$v[‘url’]}”>{$v[‘catname’]}</a></h3><p>描述:{$v[‘description’]}</p>{/loop}
说明:- $catid 是当前栏目的 ID,系统自动识别。- subcat($catid) 返回该栏目下的所有子栏目数组。- 可以调用字段包括:catname(栏目名称)、url(链接)、image(栏目图片)、description(描述)等。
立即学习“PHP免费学习笔记(深入)”;
2. 调用子栏目的内容或推荐文章
如果希望不仅显示子栏目名称,还展示其下的一条或多条内容,可以嵌套 get 标签。例如:
{loop subcat($catid) $v}<div class=”subcol”> <h3>{$v[‘catname’]}</h3> {get sql=”SELECT title,url,description,thumb FROM v9_news WHERE catid={$v[catid]} ORDER BY id DESC LIMIT 1″} <p><a href=”{$r[url]}”>{$r[title]}</a></p> {if $r[thumb]}<img src=”{$r[thumb]}” width=”120″ />{else}暂无图片{endif} {/get}</div>{/loop}
注意:- SQL 查询中的表名(如 v9_news)需根据实际数据表前缀调整。- 使用 {$v[catid]} 动态传入子栏目的 ID。- LIMIT 1 表示每个子栏目只取最新一条内容。
3. 控制仅显示一级子栏目或排除特定栏目
若只想显示一级子栏目,可加判断条件:
{loop subcat($catid) $v}{if $v[‘type’] != 2} <!– 排除外部链接类型 –><h4><a href=”{$v[‘url’]}”>{$v[‘catname’]}</a></h4>{/if}{/loop}
也可以通过设置 subcat($catid, 1, 0) 参数控制递归深度和是否包含自身。
4. 样式与前端优化建议
输出后可通过 CSS 控制布局,例如横向排列子栏目:
.subcol { float: left; width: 200px; margin: 10px; }
为避免页面加载慢,建议限制每条内容只取关键字段(title、url、thumb),避免查询过多字段。
基本上就这些方法,灵活运用 subcat 和 get 标签就能实现丰富的子栏目内容展示效果。

评论(0)