在Dedecms文章页中我们经常会显示相关文章之类的文章列表,就需要使用{dede:likearticle}标签,但是默认的likearticle是不能显示自定义的附加字段的。

解决办法

打开include/taglib/likearticle.lib.php找到

1
if($keyword!='')

在它的上面加入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//获得附加表的相关信息
$addField="";
$addJoin="";
if(is_object($refObj->ChannelUnit))
{
$addtable=$refObj->ChannelUnit->ChannelInfos['addtable'];
if($addtable!="")
{
$addJoin="LEFTJOIN$addtableONarc.id=".$addtable.".aid";
$addField="";
$fields=explode(",",$refObj->ChannelUnit->ChannelInfos['listfields']);
foreach($fieldsas$k=>$v)
{
$nfields[$v]=$k;
}
foreach($refObj->ChannelUnit->ChannelFieldsas$k=>$arr)
{
if(isset($nfields[$k]))
{
if(!empty($arr['rename']))
{
$addField.=",".$addtable.".".$k."as".$arr['rename'];
}
else
{
$addField.=",".$addtable.".".$k;
}
}
}
}
}

继续搜索

1
tp.sitepath

改成

1
tp.sitepath$addField

有2处,都要修改

继续搜索

1
arc.typeid=tp.id

改成

1
arc.typeid=tp.id$addJoin

有2处,都要需改

模板中调用自定义字段

1
2
3
4
{dede:likearticlerow='10'col=''titlelen='100'infolen='200'}
<ahref="[field:arcurl/]">[field:title/]</a>
<p>价格:¥[field:jiage/]</p>
{/dede:likearticle}

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

发表回复