在使用Dedecms进行网站开发时,有时需要对文章内容进行深度自定义,比如获取文章中的第一张图片作为缩略图展示。以下是实现这一功能的详细步骤,帮助您更好地优化SEO效果。

第一步,修改 include/extend.func.php 文件,在文件最底部插入一个新函数。此函数主要用于查询文章附加表(如需查询其他类型的内容,例如图片集等,只需更改表名即可)。

// 取原图地址
function GetFirstImg($arcid){
    global $dsql;
    $query = "SELECT body FROM `dede_addonarticle` where aid='$arcid'";
    $row = $dsql->GetOne($query);
    $preg = "//i";
    preg_match_all($preg, $row['body'], $match);
    return $match[1][0];
}

上述代码的作用是从指定文章ID中提取第一张图片的URL地址。

第二步,需要修改调用标签文件 include/taglib/arclist.lib.php。在Dedecms CMS中,当调用文章内容时通常会用到 litpic 字段。为了实现自定义功能,我们需要重新构造此字段。

找到 function lib_arclistDone() 函数内部的 $row[litpic] 部分,搜索以下代码:

$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];

在其后添加如下代码:

$row['big_pic'] = GetFirstImg($row['id']);

通过以上操作,我们为每篇文章新增了一个名为 big_pic 的字段,该字段将存储文章正文中的第一张图片地址。

最后,在模板文件中可以通过以下标签调用新添加的 big_pic 字段:

{dede:field.big_pic /}

完成以上步骤后,您的Dedecms站点就能够自动提取文章中的第一张图片,并在列表或详情页中显示,从而提升用户体验和SEO效果。

注意:在实际操作过程中,请确保备份原始文件,以防修改失误导致系统异常。同时,根据具体需求调整代码逻辑,以满足不同场景下的应用。