帝国cms中指定栏目下的信息随机调用的改进方法

搬瓦工机场JMS

    帝国CMS的安全性能和扩展性能都很强,VPS科普网本身也有多个站点在使用帝国CMS建站系统,尤其是一个黄页站点,体量比较大。为了更好的进行SEO优化,使用了随机调用的功能。

   以前VPS科普网也分享过帝国CMS随机调用的文章。

    但是目前VPS科普网遇到的问题是限定栏目比较麻烦,同时之前的代码都要求ID需要连续。但是建站的朋友都会知道,ID很多情况下都会有不连续的情况。所以VPS科普网又收集网络上的信息。对代码进行了整理。代码如下。

随机调用帝国cms指定栏目下的几条信息,简单的使用order by rand()效率低下。官方给出的方法没有考虑id不连续的情况,以下为改进后的方法:

 <?php$classid=18; //指定栏目id,当前为 $navclassid,多个请用分号隔开,比如'1,10' 表示调用栏目1和10下的所有终极栏目$limit=7;// 七条$tbname='news';//数据表list(,$classids)=sys_ReturnMoreClass($classid,1);$ids=$empire->gettotal("select group_concat(id) as total from {$dbtbpre}ecms_{$tbname} where $classids");$idsr=explode(',',$ids);$max=count($idsr)-1;if($max<$limit-1){    $rand=implode(',',$idsr); }else{    $ids=array();    $i=0;    while($i<$limit){       $key=rand(0,$max);       if(array_key_exists($key,$ids))continue;       $ids[$key]=$idsr[$key];$i++;    }    $rand=implode(',',$ids);  }?> [e:loop={"select * from {$dbtbpre}ecms_{$tbname} where id in($rand) limit $limit",0,24}] <a href="<?=$bqsr['titleurl']?>"><?=$bqr[title]?></a> [/e:loop]

未经允许不得转载:Just My Socks中文教程网 » 帝国cms中指定栏目下的信息随机调用的改进方法

赞 (0) 打赏
Just My Socks搬瓦工机场JMS

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏