织梦likearticle相关文档标签调用附加自定义字段



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

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

1
if($keyword != '')

 
在它的上面加入

01
//获得附加表的相关信息
02
$addField = "";
03
$addJoin = "";
04
if(is_object($refObj->ChannelUnit))
05
{
06
    $addtable  = $refObj->ChannelUnit->ChannelInfos['addtable'];
07
    if($addtable!="")
08
    {
09
        $addJoin = " LEFT JOIN $addtable ON arc.id = ".$addtable.".aid ";
10
        $addField = "";
11
        $fields = explode(",",$refObj->ChannelUnit->ChannelInfos['listfields']);
12
        foreach($fields as $k=>$v)
13
        {
14
            $nfields[$v] = $k;
15
        }
16
        foreach($refObj->ChannelUnit->ChannelFields as $k=>$arr)
17
        {
18
            if(isset($nfields[$k]))
19
            {
20
                if(!empty($arr['rename']))
21
                {
22
                    $addField .= ",".$addtable.".".$k." as ".$arr['rename'];
23
                }
24
                else
25
                {
26
                    $addField .= ",".$addtable.".".$k;
27
                }
28
            }
29
        }
30
    }
31
}

 
继续搜索

 

1
tp.sitepath

 
改成

 

1
tp.sitepath $addField

 
有2处,都要修改,然后继续搜索

 

1
arc.typeid=tp.id

 
改成

 

1
arc.typeid=tp.id $addJoin

 
有2处,都要需改  
模板中dede:likearticle调用自定义字段标签写法

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