调用全站热门文章,核心是按点击量(onclick字段)排序。帝国CMS提供了几种简单有效的方法,无需复杂编程,直接在模板里写标签就行。

使用灵动标签直接调用

这是最常用也最灵活的方式,直接在需要显示的地方插入代码。

基本语法:

[e:loop={'select * from [!db.pre!]ecms_news where checked=1 order by onclick desc limit 10', 10, 24, 0}]

<a href="=$bqsr['titleurl']?>" target="_blank">=$bqr['title']?></a>

[/e:loop]

select语句:查询已审核(checked=1)的文章,按onclick点击数降序排列,limit 10表示取前10条

第2个参数10:显示条数,和sql里的limit保持一致

第3个参数24:操作类型,24代表“按SQL语句调用”,必须这么写

第4个参数0:是否显示栏目名,0为不显示

如果想调用特定栏目,比如classid=6的新闻,把sql改成where classid=6 and checked=1即可。

通过自定义JS实现异步调用

适合放在侧边栏、页脚等公共区域,避免影响主页面加载速度。

登录后台,进入“栏目” -> “自定义JS” -> “增加自定义JS”

名称填“全站热门文章”方便识别

SQL语句写:select * from [!db.pre!]ecms_news where checked=1 order by onclick desc limit 10

保存后,在模板中用script标签引用生成的js文件地址

例如:<script src="/d/js/class/你的js文件名.js"></script>

注意修改完JS模板后要刷新“所有自定义JS”才能生效。

用ecmsinfo标签快速调用

系统内置的快捷方式,配置更简单。

[ecmsinfo]"select * from [!db.pre!]ecms_news where checked=1 order by onclick desc limit 10",10,24,0,24,2,0[/ecmsinfo]

第一个10:显示数量

第一个24:标题截取字数,这里实际由SQL控制

第二个24:操作类型,同样填24表示自定义SQL

2:使用的列表模板ID

这种方法把SQL直接嵌入标签,适合不想写完整循环代码的场景。