帝国 CMS 中,调用指定条件的信息
2025-09-30
在帝国 CMS 中,调用指定条件的信息主要通过灵动标签(
php
参数说明:
php
php
php
php
php
php
[e:loop]
)结合 SQL 查询条件实现,可根据栏目、时间、标题、自定义字段等多种条件筛选内容。以下是详细的使用方法和示例:
一、基础语法结构
灵动标签调用指定条件信息的基本格式:php
[e:loop={"SQL查询语句", 调用数量, 缓存时间, 是否只显示有标题图}]
<!-- 内容输出模板 -->
<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
[/e:loop]
参数说明:
SQL查询语句
:核心条件,用于筛选符合要求的信息调用数量
:显示的信息条数(0 为不限制)缓存时间
:缓存秒数(0 为不缓存)是否只显示有标题图
:1 = 只显示有标题图的信息,0 = 全部显示
二、常用条件调用示例
1. 按栏目 ID 调用(指定栏目内容)
调用栏目 ID 为 5 和 8 的文章,且已审核:php
[e:loop={"SELECT * FROM phome_ecms_news WHERE classid IN (5,8) AND checked=1 ORDER BY newstime DESC LIMIT 10",10,24,0}]
<li>
<a href="<?=$bqr['titleurl']?>"><?=esub($bqr['title'],30)?></a>
<span><?=date('Y-m-d',$bqr['newstime'])?></span>
</li>
[/e:loop]
classid IN (5,8)
:筛选栏目 ID 为 5 或 8 的内容checked=1
:只调用已审核内容
2. 按时间条件调用(指定时间段)
调用近 7 天内发布的文章:php
<?php
$time7 = time() - 7*24*3600; // 7天前的时间戳
?>
[e:loop={"SELECT * FROM phome_ecms_news WHERE newstime > $time7 AND checked=1 ORDER BY newstime DESC LIMIT 8",8,24,0}]
<div class="news-item">
<h3><?=$bqr['title']?></h3>
<p>发布时间:<?=date('Y-m-d H:i',$bqr['newstime'])?></p>
</div>
[/e:loop]
newstime > $time7
:筛选发布时间在 7 天内的内容
3. 按标题 / 内容关键词调用
调用标题包含 “活动” 的文章:php
[e:loop={"SELECT * FROM phome_ecms_news WHERE title LIKE '%活动%' AND checked=1 ORDER BY id DESC LIMIT 5",5,24,0}]
<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
[/e:loop]
title LIKE '%活动%'
:模糊匹配标题包含 “活动” 的内容- 若需匹配内容字段,可使用
smalltext LIKE '%关键词%'
(简介)或newstext LIKE '%关键词%'
(正文)
4. 按自定义字段条件调用
假设有自定义字段price
(价格),调用价格大于 1000 的产品:php
[e:loop={"SELECT * FROM phome_ecms_product WHERE price > 1000 AND checked=1 ORDER BY price ASC LIMIT 6",6,24,0}]
<div class="product">
<h4><?=$bqr['title']?></h4>
<p>价格:<?=$bqr['price']?>元</p>
</div>
[/e:loop]
- 需替换表名
phome_ecms_product
为实际模型表名 - 自定义字段直接作为条件使用(如
price > 1000
)
5. 多条件组合调用
调用栏目 ID 为 3、浏览量大于 1000、且 2023 年发布的文章:php
[e:loop={"SELECT * FROM phome_ecms_news WHERE
classid=3 AND
onclick > 1000 AND
newstime BETWEEN 1672502400 AND 1703952000 AND
checked=1
ORDER BY onclick DESC LIMIT 10",10,24,0}]
<li>
<span>浏览:<?=$bqr['onclick']?></span>
<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
</li>
[/e:loop]
BETWEEN 1672502400 AND 1703952000
:2023 年时间戳范围- 多条件用
AND
/OR
连接
三、高级用法:结合灵动标签参数
1. 调用带标题图的信息
php
[e:loop={"SELECT * FROM phome_ecms_news WHERE checked=1 ORDER BY newstime DESC",6,24,1}]
<!-- 第4个参数为1,表示只调用有标题图的信息 -->
<div class="pic-news">
<img src="<?=$bqr['titlepic']?>" alt="<?=$bqr['title']?>">
<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
</div>
[/e:loop]
2. 按模型 ID 调用(跨栏目调用同一模型)
调用模型 ID 为 1 的所有内容(不限制栏目):php
[e:loop={"SELECT * FROM phome_ecms_news WHERE mid=1 AND checked=1 ORDER BY newstime DESC LIMIT 8",8,24,0}]
<p><a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a></p>
[/e:loop]
mid=1
:模型 ID,不同模型对应不同 ID(文章模型通常为 1)
声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。