DedeCMS 是一款非常灵活的内容管理系统,它能够通过关键词或文章标题调用相关文章,从而提高内容的相关性和页面权重。这一功能主要依赖于 `likeart` 标签来实现。然而,默认情况下,`likeart` 标签无法调用自定义附加字段,但有时我们需要使用这些字段。以下是如何修改以支持调用自定义附加字段的方法。 首先,打开文件 `/include/taglib/likearticle.lib.php`,找到以下代码:
$row['templeturl'] = $GLOBALS['cfg_templeturl'];
在其下方添加以下代码:
$addfile = $refObj->ChannelUnit->ChannelInfos["listfields"]; // 获取文章模型的自定义字段列表
if ($addfile) {
    $addfiles = explode(",", $addfile); // 拆分成数组
    $len = count($addfiles);
    for ($j = 0; $j < $len; $j++) { // 循环处理每一个数组元素
        $fname = $addfiles[$j];
        // 获取每一个元素对应的值,并将元素名作为用于显示的$row数组的ID键,并赋值。
        $row["{$fname}"] = $refObj->Fields["{$fname}"];
    }
}
通过以上修改,`likeart` 标签就可以支持调用自定义附加字段了。 此外,还有另一种方法可以调用自定义附加字段。在模板中使用以下代码:
上述代码中,`row='10'` 表示调用 10 条相关文章。`[field:id runphp='yes']` 部分用于获取当前文章 ID,并查询数据库中的自定义字段值。最后,通过 `cn_substr` 函数对字段值进行截取,确保输出内容不会过长。 通过这些修改和模板代码,您可以轻松地在 DedeCMS 中实现 `likeart` 标签调用自定义附加字段的功能,从而提升网站内容的相关性和用户体验。
希望以上内容能帮助您更好地优化网站内容结构!