dedecms5.6在内容页面调用当前文章的相关文章的方法

2019-10-25 11:08:16 织梦安装使用
  • 文章介绍

 

在使用dedecms5.6时发现如果在内容页面调用相关文章,简单的使用dedecms arclist不能够实现,但是arclist有一个字段keyword,如果把当前文章的keyword调用出来,就能够得到当前相关文章的列表.我的 做法是对keyword附一个固定的值
{dede:arclist keyword=’relation’ row=’5′}

  • field:title/

  • {/dede:arclist}

    如果是在终端页面调用相关文章,就将keyword的值固定,其他的参数也都是可以用的,默认的keyword值是当前页面得关键字,有兴趣的可以去我网站看看 游戏联盟114 可以对比下面相关文章的关键字和当前页面得关键字

    具体的实现方式是:
    1.修改include/arc.archives.class.php找到MakeOneTag($this->dtp, $this, ‘N’,$reltag);将其替换为
    $reltag = explode(‘,’,$this->Fieldskeywords);
    $reltag = $reltag0;
    MakeOneTag($this->dtp, $this, ‘N’,$reltag);
     

    2.修改include/下的channelunit.func.php找到函数MakeOneTag函数 MakeOneTag(&$dtp, &$refObj, $parfield=’Y’)在函数的最后加上一个参数
    MakeOneTag(&$dtp, &$refObj, $parfield=’Y’,$reltag)

    仔细看下有什么区别吧
    在函数中找到
    if(in_array($tagname,$alltags))
    {
    $filename = DEDEINC.’/taglib/’.$tagname.’.lib.php’;
    include_once($filename);
    $funcname = ‘lib_’.$tagname;
    $dtp->Assign($tagid,$funcname($ctag,$refObj));
    }
     

    将其修改为
    if(in_array($tagname,$alltags))
    {
    $filename = DEDEINC.’/taglib/’.$tagname.’.lib.php’;
    include_once($filename);
    $funcname = ‘lib_’.$tagname;
    if($tagname == ‘arclist’){
    foreach($ctag->CAttribute->Items as $key => $val){
    if($key == ‘keyword’){
    if($val==’Relation’){

    $ctag->CAttribute->Items$key=$reltag;
    }
    }
    }
    }
    $dtp->Assign($tagid,$funcname($ctag,$refObj));
    }
     

    呵呵,去生成静态吧,不要忘记了 keyword=’relation’ relation 不要变哦,变了可就调不出来了,有问题就问吧

    上一篇:dedecms 删除文章同时删除图片的方法..

    下一篇:如何设置DedeCMS问答模块rewrite伪静..

    专业的织梦模板定制下载站,在线购买后即可下载!

    商业源码

    跟版网模板,累计帮助5000+客户企业成功建站,为草根创业提供助力!

    立刻开启你的建站之旅
    
    QQ在线客服

    服务热线

    织梦建站咨询