Dedecms如何在模板上增加随机调用文章板块

手册/FAQ (534) 2016-02-19 09:51:24

      如果你在度娘上搜索这个问题时,会看到很多网站提供的答案是调用下面的这段代码:

  " {dede:arclist row='1000' pagesize='10' titlelen='35' orderby='rand'}

  [field:title/]

  {/dede:arclist}

  row='1000'代表取出1000个文章, orderby='rand'代表对这些文章随机排序, pagesize='10'代表只显示随机排序后的前十个文章。"

  用上面的这段代码,我在dede5.7中测试了一下,结果并非如我所愿。这段代码显示的结果,容我举例说明。

  比方说,我的一个栏目A下有100篇文章,它们每篇文章的Id是从1到100的编号,而我想要实现效果是,每篇内容页都随机抓取10篇其他文章的标题,作为在每篇内容页的“相关推荐”版块中的内容,如第一篇文章的“相关推荐”抓取了ID2到ID10的标题,第二篇抓取了ID6到ID16标题,第三篇抓取了ID50到ID60标题,以此类推,栏目A下每一篇文章的标题都会出现在其他内容页面的”相关推荐“版块中。

  而上面那段代码得到的结果是:随机抓取10篇文章标题,如:ID1到ID10的标题,然后在A栏目下100篇文章的每一篇文章的相关推荐中,只出现ID1到ID10的标题,仅有的改变只是上下排列次序的变化。

  那问题出在哪里?如何做到真正的随机文章调取呢?

  答案是去掉”row“,正确的调用代码如下:

  {dede:arclist pagesize='10' titlelen='35' orderby='rand'}

  [field:title/](注释:这里是调用文章的标题调用代码)

  {/dede:arclist}

  注释

  pagesize='10' 这个代表生成10个标题

  titlelen='35' 表示限制标题长度为35个字节(2个字节等于一个汉字)

  orderby='rand' ”rand“表示抓取方式为 随机抓取

  如果想抓取指定栏目下的内容要加入typeid='这里填写栏目的ID'

  {dede:arclist pagesize='10' titlelen='35' typeid='5' orderby='rand'}

THE END