帝国cms怎么在列表页每隔几条信息插入广告调用方法
1. 使用灵动标签+计数器控制广告插入
进入后台 → 模板管理 → 修改对应列表模板,在使用 [e:loop] 调用内容时加入PHP计数逻辑。
// 示例:每显示5条信息插入一次广告
在模板中写法如下:
<p>[e:loop={栏目ID,显示数量,操作类型,只显示有标题图片}]
<p><?php
$bqno++;
if($bqno % 5 == 0) { // 每5条插入一次广告
?>
<div class="ad-box">
<!-- 广告代码开始 -->
<script src="你的广告地址.js"></script>
<!-- 广告代码结束 -->
</div>
<?php } ?></p><p><li><a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a></li></p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/2223" title="Memories.ai"><img
src="https://img.php.cn/upload/ai_manual/000/000/000/175679962023075.png" alt="Memories.ai" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/2223" title="Memories.ai">Memories.ai</a>
<p>专注于视频解析的AI视觉记忆模型</p>
</div>
<a href="/ai/2223" title="Memories.ai" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><p>[/e:loop]
说明:
- $bqno 是系统自带的循环序号变量,从1开始递增。
- $bqno % 5 == 0 表示当序号能被5整除时执行广告插入,即第5、10、15…条后插入广告。
- 可根据需要修改数字5为其他间隔值(如3、6等)。
2. 在分页列表模板中使用PHP手动循环(适用于自定义SQL)
如果你使用的是带PHP代码的列表模板(需开启“使用程序代码”),可以手动写循环更灵活控制。
模板开启程序代码后写法示例:
<?php
$ecms_bq_sql = sys_ReturnEcmsLoopBq("select * from [!db.pre!]ecms_news where checked=1 order by newstime desc limit 10", 10, 24, 0);
$bqno = 0;
while ($bqr = $empire->fetch($ecms_bq_sql)) {
$bqsr = sys_ReturnBqTitleLink($bqr);
$bqno++;
?>
<li><a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a></li>
<p><?php
if($bqno % 5 == 0) { // 每5条插入广告
?>
<div class="ad-insert">
<img src="/images/ad-banner.jpg" alt="广告">
</div>
<?php
}
}
?>
3. 注意事项与优化建议
广告位尽量放在非首条位置,避免影响用户体验。
若列表启用了缓存或静态化,请确保模板更改后重新生成页面。
移动端可设置不同间隔(如每3条),PC端每5-6条较合适。
广告内容推荐使用异步加载JS,防止拖慢主内容渲染。






