
帝国CMS的灵动标签非常灵活,常用于首页、列表页或内容页中调用指定栏目下的文章。通过设置相应的参数,可以精准控制调用哪个栏目、调用多少条、按什么排序等。
基本语法结构
灵动标签的基本格式如下:
{dede:sql sql=”SELECT * FROM phome_ecms_news WHERE classid=栏目ID ORDER BY newstime DESC LIMIT 10″}[field:title/]{/dede:sql}
但更推荐使用内置的 loop 或 e:loop 标签方式(即“灵动标签”),它更安全且与系统集成更好。
使用e:loop调用指定栏目文章
格式:
zuojiankuohaophpcn?php$classid = ‘栏目ID’; // 设置要调用的栏目ID?>{e:loop={“select * from [!db.pre!]ecms_news where classid=$classid order by newstime desc limit 10″,10,24,0}}<a href=”[!–titleurl–]” target=”_blank”>[!–title–]</a><br>{/e:loop}
说明:
[!db.pre!]ecms_news:数据表名,新闻模型为 ecms_news,其他模型请对应修改(如 ecmsshop、ecmsarticle 等)classid=栏目ID:替换为你想调用的具体栏目ID,支持多个栏目用 in (1,2,3) 写法order by newstime desc:按发布时间倒序排列,最新在前limit 10:最多显示10条后面的 10,24,0 是参数,分别代表:每行显示列数、是否显示标题长度截取、是否过滤HTML
调用多个指定栏目的文章
如果你想从多个栏目中获取文章,可以使用 IN 查询:
{e:loop={“select * from [!db.pre!]ecms_news where classid in (1,3,5) order by newstime desc limit 15″,10,24,0}}<a href=”[!–titleurl–]”>[!–title–]</a> ([!–newstime–])<br>{/e:loop}
这样就能同时调用栏目ID为1、3、5的文章,适用于首页展示多栏目最新内容。
显示文章发布时间和简介
如果需要显示时间或摘要,可加入对应字段:
{e:loop={“select title,titleurl,newstime,smalltext from [!db.pre!]ecms_news where classid=2 order by newstime desc limit 8″,10,24,0}}<h4><a href=”[!–titleurl–]”>[!–title–]</a></h4><p>发布时间:[!–newstime–]<br>简介:[!–smalltext–]…</p>{/e:loop}
注意:smalltext 字段通常不会自动截取,建议在模板中用函数处理或后台设置截取长度。
基本上就这些。关键是搞清楚表名、栏目ID和字段名。调试时可先在后台“SQL调用工具”测试语句是否正确,再嵌入模板。

评论(0)