这里是文章模块栏目内容页
如何在dede中调用文章内第一张原始图片而非缩略图?
在DedeCMS中,调用文章内第一张原始图片(非缩略图)的实现方法如下:,,“php,{dede:field name='body'/}, {dede:php}, preg_match('/]*src="([^"]*)"/i', $body, $matches);, if (isset($matches[1])) {, echo '';, }, {/dede:php},{/dede:field},`,,这段代码首先使用正则表达式匹配文章中的第一张图片标签,然后提取出图片的src属性值,最后输出该图片的`标签。

在织梦CMS(DedeCMS)中调用文章内第一张原始图片(非缩略图)通常需要进行一些代码修改和配置,以下是实现这一功能的详细步骤:

方法一:通过修改include/extend.func.php 文件

1、打开并编辑include/extend.func.php

找到include/extend.func.php 文件,并在文件的末尾添加以下函数:

“`php

function firstimg($str_pic) {

$str_sub = substr($str_pic, 0, 7) . ".jpg"; // 删除缩略图字符串最后七位,再加上后缀.jpg

return $str_sub;

}

“`

2、在模板文件中调用

在需要显示图片的地方,使用以下代码:

“`html

“`

方法二:通过修改include/taglib/arclist.lib.php 文件

1、打开并编辑include/taglib/arclist.lib.php

找到include/taglib/arclist.lib.php 文件,并在function lib_arclistDone() 函数里面增加如下代码:

“`php

if (GetFirstImg($row[‘id’]) != "") {

$row[‘firstimg’] = GetFirstImg($row[‘id’]);

} else {

$row[‘firstimg’] = $row[‘litpic’]; // 如果无图则使用缩略图

}

“`

确保已经定义了GetFirstImg 函数,可以在include/extend.func.php 文件中添加:

“`php

function GetFirstImg($arcid) {

global $dsql;

$query = "SELECT body FROMdede_addonarticle WHERE aid=’$arcid’";

$row = $dsql>GetOne($query);

preg_match_all(‘//i’, $row[‘body’], $matches);

return empty($matches[1][0]) ? ” : $matches[1][0];

}

“`

2、在模板文件中调用

在需要显示图片的地方,使用以下代码:

“`html

“`

FAQs(常见问题解答)

1、Q: 为什么需要删除缩略图字符串的最后七位?

A: 缩略图的文件名通常与原图的文件名相似,但会在文件名后加上特定的标识符,通过删除这些字符,可以还原为原图的文件名。

2、Q: 如何确保修改后的代码能够正常工作?

A: 在进行任何修改之前,建议备份原始文件,以防止出现错误时无法恢复,可以通过在本地环境中进行测试,确保修改后的代码能够正确显示图片。

3、Q: 如果在模板文件中无法正确显示图片,可能是什么原因?

A: 请检查以下几点:a) 确保include/extend.func.phpinclude/taglib/arclist.lib.php 中的函数已正确添加;b) 确保模板文件中的调用代码没有拼写错误;c) 确保数据库中有相应的图片记录。

通过以上方法,可以实现在织梦CMS中调用文章内的第一张原始图片(非缩略图),根据具体需求选择合适的方法,并进行相应的代码修改和配置。

序号 参数/步骤 说明
1 获取文章内容 使用GetArticleContent 函数获取文章的HTML内容
2 提取图片标签 使用正则表达式或DOM解析技术提取文章中的图片标签
3 获取图片地址 从图片标签中提取图片的原始地址(src属性)
4 判断图片类型 检查图片地址是否指向原始图片(非缩略图),通常通过图片后缀名或文件大小来判断
5 生成调用代码 使用dede模板语言(如{dede:field name='imgurl'/})生成调用文章内第一张原始图片的代码
6 代码示例 以下是一个简单的代码示例:

注意:实际实现过程中,可能需要根据具体网站结构和dede版本进行调整。