如何在dede中调用文章内第一张原始图片而非缩略图?
- 行业动态
- 2024-10-08
- 1
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
<img src="{dede:field name=’litpic’ function=’firstimg(@me)’/}" />
“`
方法二:通过修改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(‘/<img.*?src=[\’"](.+?)[\""].*?>/i’, $row[‘body’], $matches);
return empty($matches[1][0]) ? ” : $matches[1][0];
}
“`
2、在模板文件中调用:
在需要显示图片的地方,使用以下代码:
“`html
<img src="[field:firstimg/]" />
“`
FAQs(常见问题解答)
1、Q: 为什么需要删除缩略图字符串的最后七位?
A: 缩略图的文件名通常与原图的文件名相似,但会在文件名后加上特定的标识符,通过删除这些字符,可以还原为原图的文件名。
2、Q: 如何确保修改后的代码能够正常工作?
A: 在进行任何修改之前,建议备份原始文件,以防止出现错误时无法恢复,可以通过在本地环境中进行测试,确保修改后的代码能够正确显示图片。
3、Q: 如果在模板文件中无法正确显示图片,可能是什么原因?
A: 请检查以下几点:a) 确保include/extend.func.php
或include/taglib/arclist.lib.php
中的函数已正确添加;b) 确保模板文件中的调用代码没有拼写错误;c) 确保数据库中有相应的图片记录。
通过以上方法,可以实现在织梦CMS中调用文章内的第一张原始图片(非缩略图),根据具体需求选择合适的方法,并进行相应的代码修改和配置。
序号 | 参数/步骤 | 说明 |
1 | 获取文章内容 | 使用GetArticleContent 函数获取文章的HTML内容 |
2 | 提取图片标签 | 使用正则表达式或DOM解析技术提取文章中的图片标签 |
3 | 获取图片地址 | 从图片标签中提取图片的原始地址(src属性) |
4 | 判断图片类型 | 检查图片地址是否指向原始图片(非缩略图),通常通过图片后缀名或文件大小来判断 |
5 | 生成调用代码 | 使用dede模板语言(如{dede:field name='imgurl'/} )生成调用文章内第一张原始图片的代码 |
6 | 代码示例 | 以下是一个简单的代码示例: |
注意:实际实现过程中,可能需要根据具体网站结构和dede版本进行调整。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/118363.html