在网页开发过程中,有时我们需要调用Dedecms的原图而非缩略图。然而,Dedecms本身并未提供直接调用原图的功能。为了实现这一需求,我们可以通过修改Dedecms的核心文件来达成目标。以下是一个简单的教程,帮助您轻松实现此功能。 首先,需要对Dedecms的核心文件进行修改。具体来说,我们要编辑 `include/extend.func.php` 文件。
在这里,我们将添加一段代码以提取图片的原始地址。

// 取第一张图地址
function firstimg($str_pic) {
    $str_sub = substr($str_pic, 0, -7) . ".jpg"; // 删除缩略图字符串最后七位,然后再补上后缀.jpg
    return $str_sub;
}
    
通过上述代码,我们可以从缩略图路径中移除特定的字符,并替换为正确的后缀名以指向原图。
接下来,在模板文件中循环调用该函数即可实现原图展示。

[field:litpic function=firstimg('@me')/]
如果希望直接调用某个字段的大图,可以使用下面的语法:

{dede:field name='litpic' function="firstimg(@me)"/}
需要注意的是,以上方法假设所有图片都是 `.jpg` 格式。但在实际应用中,可能遇到其他格式如 `.png` 或 `.gif` 的情况。因此,更完善的解决方案应考虑不同后缀的情况。
以下是改进后的代码版本,它能够正确处理各种图片后缀:

// 取原图地址
function bigimg($str_pic) {
    $str_houzhi = substr($str_pic, -4);
    $str_sub = substr($str_pic, 0, -7) . $str_houzhi; // 删除缩略图字符串最后七位,再补上正确的后缀
    return $str_sub;
}
    
在模板中,您可以按照如下方式调用新定义的 `bigimg` 函数:

[field:litpic function=bigimg('@me')/]
或者直接调用字段时使用:

{dede:field name='litpic' function="bigimg(@me)"/}
通过以上步骤,您可以成功地在Dedecms中调用原图,而不再局限于缩略图。这种方法简单易行,适合初学者尝试,同时也能满足大多数项目的实际需求。请确保在修改核心文件前做好备份工作,以免意外丢失数据或造成系统不稳定。