首页电脑网络 正文

帝国cms随机调用文章的方法分享

时间:11-26 分类:电脑网络

帝国cms随机调用文章的方法分享

对于站内链接优化,我相信很多人应该都不陌生了,简称为内链。通常文章页面都需要指向另外一个页面,那么怎么做到随机指向呢?看了一下帝国cms的灵动标签发现没有随机调用类型标签,真心蛋疼。于是又开始了百度一下你就知道了,哈哈!找到了很多方法并经过测试,发现有些技巧存在bug,不好用。大标在其基础上修改了一下代码,发现终于可以随机调用了。你喜欢调用那个栏目的文章就怎么调用,爽歪歪,做到随心所欲。下面广州seo大标就分享下代码给大家吧:
<?php $randnum=1;       
 //随机读取多少个 $randids=''; $randdh=''; for($i=1;$i<=$randnum;$i++) {         
$randids.=$randdh.rand(18,30);        
//1为最小ID,100000为最大ID  这里可以是该栏目下的最小文章ID 最大ID       
  $randdh=','; }   ?> [e:loop={29,1,0,0,"id in ($randids)"}]       //栏目ID需要修改为自己想调用的文章ID ,这里调用的条数必须与上面的随机读取一致 不然只能调用一条 <a href="<?=$bqsr[titleurl]?>"><?=esub($bqr[title],42)?></a> [/e:loop]

此方法有个bug,就是修改都需要去改下模板,而且文章ID变大了,需要修改下文章最大ID。

问题简单描述下 希望有大神能够解决一下:

在 $randids.=$randdh.rand(3000,5000); 这个里,ID改成1,10000,无法显示,只有改成当前栏目的最小和最大ID,才能显示出来。那么问题是:现在文章少,如果以 后文章增多,这里的最大ID要随时修改么?还是有其他的办法呢?

答案:增加个系统扩展变量,以后改扩展变量就可以,不用改模板

如:增加了一个扩展变量 写到“$randids.=$randdh.rand(18,30); ”

格式为: $randids.=$randdh.rand($public_r['add_listnum']>); 即:把去掉

发现并不可以,而且栏目ID是也是随机改变的,本人觉得这个方法不好用。如果不介意的话可以拿去直接使用。

第二种方法:

1、创建一个自定义页面:后台-栏目-自定义页面- 增加自定义页面

在自定义栏目填写:①页面模式:直接页面式  ②页面名称(*):php随机文章  ③文件名(*): ../../test.php (在根目录) ④所属分类:有就选择没有就默认不选

⑤ 网页标题、网页关键词、网页描述:省略不填了  ⑥页面内容(*):

备注:填写位置为 ../../test.php,直接页面式

2、第二步:代码大致为(需要连接数据库)

<!--code.start-->?php require('e/class/connect.php'); //引入数据库配置文件和公共函数文件  require('e/class/db_sql.php'); 
//引入数据库操作文件  $link=db_connect(); 
//连接MYSQL  $empire=new mysqlquery(); 
//声明数据库操作类  $sql="SELECT * FROM {$dbtbpre}ecms_news
 AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT 
MAX(id) FROM
 {$dbtbpre}ecms_news )-(SELECT MIN(id) FROM {$dbtbpre}ecms_news))+(SELECT MIN(id) 
FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id 
>= t2.id ORDER BY t1.id LIMIT 1"; ?<!--code.end--> <!--code.start-->?php $str="";
for($i=1;$i<11;$i++){ $nr= $empire->fetch1($sql); $titleurl=sys_ReturnBqTitleLink($nr); $str=$str."<li>
<a href='".$titleurl."' title='".$nr['title']."'>".$nr['title']."</a></li> "; } db_close(); 
//关闭MYSQL链接 $empire=null; //注消操作类变量 echo $str; ?<!--code.end-->

下面介绍第三种方法,也是最简单的一种方法,效果调用出来杠杠的

[ecmsinfo]"select * from phome_ecms_news where classid in (6) 
order by rand() desc limit 20 ",20,32,0,24,14,0[/ecmsinfo] 
//调用栏目ID6的20条信息

这是我目前使用的比较好的方法了。不喜欢勿喷

热门文章

重点栏目推荐