dede文章相关调用方法总结

《dede文章相关调用方法总结》要点:
本文介绍了dede文章相关调用方法总结,希望对您有用。如果有疑问,可以联系我们。

导读:很多网友说在使用dedecms5 6时发现如果在内容页面调用相关文章,简单的使用dedecms arclist不克不及够实现.于是就分析了一下,arclist有一个字
很多网友说在使用dedecms5.6时发现如果在内容页面调用相关文章,arclist有一个字段keyword,如果把当前文章的keyword调用出来,就能够得到当前相关文章的列表.我的做法是对keyword附一个固定的值
 
代码如下:
  1. {dede:arclist keyword='relation' row='5'}
  2. <li><a href="[field:arcurl/]">[field:title/]</a></li>
  3. {/dede:arclist}
如果是在终端页面调用相关文章,就将keyword的值固定,其他的参数也都是可以用的,默认的keyword值是当前页面得关键字

可以对比下面相关文章的关键字和当前页面得关键字

具体的实现方式是:

1.改动include/arc.archives.class.php找到
MakeOneTag($this->dtp,$this,'N',$reltag);
将其替换为

 
代码如下:
  1. $reltag = explode(',',$this->Fields['keywords']);
  2. $reltag = $reltag[0];
  3. MakeOneTag($this->dtp, $this, 'N',$reltag);
2.改动include/下的channelunit.func.php找到函数MakeOneTag函数
MakeOneTag(&$dtp,&$refObj,$parfield='Y')
在函数的最后加上一个参数
仔细看下有什么区别吧

在函数中找到
 

 
代码如下:
  1. if(in_array($tagname,$alltags))
  2. {
  3. $filename = DEDEINC.'/taglib/'.$tagname.'.lib.php';
  4. include_once($filename);
  5. $funcname = 'lib_'.$tagname;
  6. $dtp->Assign($tagid,$funcname($ctag,$refObj));
  7. }
将其改动为
 
代码如下:
  1. if(in_array($tagname,$alltags))
  2. {
  3. $filename = DEDEINC.'/taglib/'.$tagname.'.lib.php';
  4. include_once($filename);
  5. $funcname = 'lib_'.$tagname;
  6. if($tagname == 'arclist'){
  7. foreach($ctag->CAttribute->Items as $key => $val){
  8. if($key == 'keyword'){
  9. if($val=='Relation'){
  10. $ctag->CAttribute->Items[$key]=$reltag;
  11. }
  12. }
  13. }
  14. }
  15. $dtp->Assign($tagid,sans-serif; line-height: 25.600000381469727px; ">呵呵,去生成静态吧,不要忘记了 keyword=’relation’ relation 不要变哦,变了可就调不出来了

    欢迎参与《dede文章相关调用方法总结》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

相关文章

文章浏览阅读483次。dedecms织梦频道模板中调用栏目分类并排...
文章浏览阅读284次。我们在用织梦建站的过程中,难免会遇到各...
文章浏览阅读152次。seo专题是seo优化必不可少的一环,对于网...
文章浏览阅读142次。在Dedecms中,在列表页调用文章摘要的方...
文章浏览阅读234次。织梦DedeCMS文章内容发布时可以选择“头...
文章浏览阅读701次。虽然织梦DedeCMS因为安全问题被人所诟病...