帝国cms随机调用栏目文章的几种方法:正常情况下呢,只能在动态页面才可以随机调取,就是你刷新一下就变了内容,但是静态页面下,如果能把代码写进去,也是可以的。
正常情况下,我们在设置帝国cms模板或者仿站的时候,页面中会根据需要调用指定的栏目内容列表或者图片展示,帝国CMS的优势就是直接在后台自带调用标签设置工具,这一点还是非常不错的。但是有些页面空白的地方我们希望充实一点内容,于是一般采用的办法是调用随机内容。
下面这是显示效果,刷新就会变内容:
第一种方法代码:
<div class="rand-item"> <div class="title"><h3>随机文章</h3></div> <div class="box"> [e:loop={'你的栏目ID,小逗号多写',25,0,0,'','rand()'}] <li><a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a></li> //这是你的样式 [/e:loop] </div></div>
第二种方法代码:
<div class="whitebg suiji"> <h2 class="side-title">随机文章</h2> <ul> [e:loop={'selfinfo',10,1,0,'','rand()'}] <li><a target="_blank" href="<?=$bqsr['titleurl']?>"><?=$bqr['title']?></a></li>//这是你的样式 [/e:loop] </ul> </div>
我们可以根据需要在合适的位置丢上随机文章调出标签,当然需要根据我们页面布局修改样式。
看不少人喜欢用ORDER BY RAND()随机调用,随机调用是最耗资源的一种调用方式,信息数在1万以上随机调用就开始影响速度。使用时建议慎之又慎。
如果确实要使用,可以用下面思路:
第一种方法
<?php
$num=10;
$total=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_{$class_r[4]['tbname']} where classid=4");$start=$total-$num;
$table=$class_r[4]['tbname'];
if($start<1){
$start=0;
}else{$start=mt_rand(0,$start);
}?>
[e:loop={'select * from '.$dbtbpre.'ecms_'.$table.' limit '.$start.','.$num,10,24,0}]
<li><a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a></li>
[/e:loop]
第二种方法:
先用php随机出信息ID,然后SQL调用用id in (php随机的ID列表)
调用举例:
<?php $randnum=10; //随机数量 $randids=''; $randdh=''; for($i=1;$i<=$randnum;$i++) { $randids.=$randdh.rand(1,100000); //1为最小ID,100000为最大ID $randdh=','; } ?> [e:loop={栏目ID,显示条数,操作类型,只显示有标题图片,"id in ($randids)"}] 模板代码内容 [/e:loop]