在Dedecms文章页面中,我们经常需要展示相关文章列表,这通常会用到 `{dede:likearticle}` 标签。然而,默认情况下,`{dede:likearticle}` 并不支持显示自定义附加字段。
为了实现这一功能,我们需要对系统文件进行一些修改。以下是具体的解决办法:
### 解决办法 首先,打开 `include/taglib/likearticle.lib.php` 文件,找到以下代码段:

if($keyword != '')
    
在其上方加入以下代码:

// 获得附加表的相关信息
$addField = "";
$addJoin = "";
if(is_object($refObj->ChannelUnit))
{
    $addtable  = $refObj->ChannelUnit->ChannelInfos['addtable'];
    if($addtable!="")
    {
        $addJoin = " LEFT JOIN $addtable ON arc.id = ".$addtable.".aid ";
        $addField = "";
        $fields = explode(",",$refObj->ChannelUnit->ChannelInfos['listfields']);
        foreach($fields as $k=>$v)
        {
            $nfields[$v] = $k;
        }
        foreach($refObj->ChannelUnit->ChannelFields as $k=>$arr)
        {
            if(isset($nfields[$k]))
            {
                if(!empty($arr['rename']))
                {
                    $addField .= ",".$addtable.".".$k." as ".$arr['rename'];
                }
                else
                {
                    $addField .= ",".$addtable.".".$k;
                }
            }
        }
    }
}
    
接下来,继续搜索以下代码:

tp.sitepath
    
将其修改为:

tp.sitepath $addField
    
注意,这里有两处需要修改,请确保都已完成。
然后,继续搜索以下代码:

arc.typeid=tp.id
    
将其修改为:

arc.typeid=tp.id $addJoin
    
同样,这里也有两处需要修改,请确保都已完成。
### 模板调用方法 完成上述修改后,您可以在模板中使用以下代码来调用 `{dede:likearticle}` 标签,并显示自定义字段:

{dede:likearticle row='10' col='' titlelen='100' infolen='200'}
[field:title/]

价格:¥[field:jiage/]

{/dede:likearticle}
通过以上步骤,您可以成功在 Dedecms 的 `{dede:likearticle}` 标签中显示自定义附加字段。这种方法不仅增强了标签的功能性,还提升了网站内容的丰富度和用户体验。
希望这篇文章能帮助您更好地理解和使用 Dedecms 系统!