使用subcat函数和get标签可实现PHPCMS栏目页调用子栏目及其内容。首先通过{loop subcat($catid) $v}获取子栏目信息,输出名称、链接、描述等字段;如需展示子栏目下的文章内容,可在循环内嵌套{get sql="SELECT title,url,description,thumb FROM v9_news WHERE catid={$v[catid]} ORDER BY id DESC LIMIT 1"}调用最新文章并显示标题、缩略图等;可通过if条件过滤外部链接类型或设置subcat参数控制层级;前端建议使用CSS布局优化显示效果,并限制SQL查询字段以提升性能。

在使用 PHPCMS 建站时,栏目页调用子栏目内容是一个常见需求,尤其适用于分类清晰、层级明确的网站结构。比如在“产品中心”主栏目下展示各个子类别的缩略图和简介。实现这一功能的关键是利用 PHPCMS 的标签系统,结合 get 标签 或 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免费学习笔记(深入)”;
如果希望不仅显示子栏目名称,还展示其下的一条或多条内容,可以嵌套 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 表示每个子栏目只取最新一条内容。
若只想显示一级子栏目,可加判断条件:
{loop subcat($catid) $v}
{if $v['type'] != 2} <!-- 排除外部链接类型 -->
<h4><a href="{$v['url']}">{$v['catname']}</a></h4>
{/if}
{/loop}
也可以通过设置 subcat($catid, 1, 0) 参数控制递归深度和是否包含自身。
输出后可通过 CSS 控制布局,例如横向排列子栏目:
.subcol { float: left; width: 200px; margin: 10px; }
为避免页面加载慢,建议限制每条内容只取关键字段(title、url、thumb),避免查询过多字段。
基本上就这些方法,灵活运用 subcat 和 get 标签就能实现丰富的子栏目内容展示效果。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号