分类分类
更新时间:2026-08-08 15:34:49作者:sa
很多网友说在使用dedecms5.6时发现如果在内容页面调用相关文章,简单的使用dedecms arclist不能够实现。于是就分析了一下,arclist有一个字段keyword,如果把当前文章的keyword调用出来,就能够得到当前相关文章的列表.我的做法是对keyword附一个固定的值
代码如下:
{dede:arclist keyword='relation' row='5'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
如果是在终端页面调用相关文章,就将keyword的值固定,其他的参数也都是可以用的,默认的keyword值是当前页面得关键字
可以对比下面相关文章的关键字和当前页面得关键字
具体的实现方式是:
1.修改include/arc.archives.class.php找到
MakeOneTag($this->dtp, $this, 'N',$reltag);
将其替换为
代码如下:
$reltag = explode(',',$this->Fields['keywords']);
$reltag = $reltag[0];
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 不要变哦,变了可就调不出来了
相关
战西游手游折扣版策略游戏13.77 Mv1.02026-08-08
下载富豪物语创业时代官方版经营养成215.01 Mv3.0.12026-08-08
下载咒术回战爱憎乱斗手游动作射击291.7 Mv1.0.02026-08-08
下载三国吧兄弟折扣版策略游戏380.04 Mv1.0.02026-08-08
下载代号97动作射击277.47 Mv1.0.72026-08-08
下载日本事故物件监视协会3冒险游戏170.33 MBv1.0.42026-08-08
下载你牛你来休闲益智116.37 MBv1.0.22026-08-08
下载文字密室逃脱手机版冒险游戏255.16 MBv1.62026-08-07
下载苏丹的游戏手机版角色扮演1.02 GBv1.0.62026-08-07
下载超市大亨3D手游经营养成253.14 MBv10.252026-08-07
下载你只能推搡动作射击44.62 MBv1.102026-08-07
下载仙逆本尊手游角色扮演298.41 Mv0.0.42026-08-07
下载










