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

2018年7月18日15:24:38 2 463 views

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

对于站内链接优化,我相信很多人应该都不陌生了,简称为内链。通常文章页面都需要指向另外一个页面,那么怎么做到随机指向呢?看了一下帝国cms的灵动标签发现没有随机调用类型标签,真心蛋疼。于是又开始了百度一下你就知道了,哈哈!找到了很多方法并经过测试,发现有些技巧存在bug,不好用。大标在其基础上修改了一下代码,发现终于可以随机调用了。你喜欢调用那个栏目的文章就怎么调用,爽歪歪,做到随心所欲。下面广州seo大标就分享下代码给大家吧:

  1. <?php
  2. $randnum=1;        //随机读取多少个
  3. $randids='';
  4. $randdh='';
  5. for($i=1;$i<=$randnum;$i++)
  6. {
  7.         $randids.=$randdh.rand(18,30);        //1为最小ID,100000为最大ID  这里可以是该栏目下的最小文章ID 最大ID
  8.         $randdh=',';
  9. }
  10. ?>
  11. [e:loop={29,1,0,0,"id in ($randids)"}]       //栏目ID需要修改为自己想调用的文章ID ,这里调用的条数必须与上面的随机读取一致 不然只能调用一条
  12. <a href="<?=$bqsr[titleurl]?>"><?=esub($bqr[title],42)?></a>
  13. [/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、第二步:代码大致为(需要连接数据库)

  1. <!--code.start-->?php
  2. require('e/class/connect.php'); //引入数据库配置文件和公共函数文件 
  3. require('e/class/db_sql.php'); //引入数据库操作文件 
  4. $link=db_connect(); //连接MYSQL 
  5. $empire=new mysqlquery(); //声明数据库操作类 
  6. $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) 
  7. FROM {$dbtbpre}ecms_news )) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1";
  8. ?<!--code.end-->
  9. <!--code.start-->?php
  10. $str="";
  11. for($i=1;$i<11;$i++){
  12. $nr$empire->fetch1($sql);
  13. $titleurl=sys_ReturnBqTitleLink($nr);
  14. $str=$str."<li><a href='".$titleurl."' title='".$nr['title']."'>".$nr['title']."</a></li> ";
  15. }
  16. db_close(); //关闭MYSQL链接
  17. $empire=null; //注消操作类变量
  18. echo $str;
  19. ?<!--code.end-->

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

  1. [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条信息

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

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • 云服务器 云服务器 2

      帝国没用过,织梦用的比较多。

        • 大标 大标 Admin

          @云服务器 织梦我也有用 织梦标签用起来比较顺手 不过帝国生成速度比织梦 快 所以用帝国了