在DedeCMS(织梦内容管理系统)中,调用文章内第一张原始图片而非缩略图,是一个常见的需求,本文将详细介绍实现这一功能的步骤和方法,确保内容准确、排版精美、逻辑清晰。
方法一:修改include/extend.func.php文件
1、找到并打开文件:
进入DedeCMS根目录,找到“include”文件夹。
使用Dreamweaver软件或记事本打开“extend.func.php”文件。
2、在文件末尾添加函数:
“`php
//取第一张图地址
function firstimg($str_pic) {
$str_sub = substr($str_pic, 0, 7) . ".jpg"; //删除缩略图字符串最后七位,然后再补上后缀.jpg
return $str_sub;
}
“`
3、保存文件。
4、在模板中调用:
使用以下代码在HTML模板中进行调用:
“`html
[field:litpic function=’firstimg(@me)’/]
“`
或者:
“`html
{dede:field name=’litpic’ function="firstimg(@me)"/}
“`
方法二:使用正则表达式匹配第一张图片
1、找到并打开文件:
进入DedeCMS根目录,找到“include”文件夹。
使用Dreamweaver软件或记事本打开“extend.func.php”文件。
2、在文件末尾添加函数:
“`php
function GetFirstImg($arcid){
global $dsql;
$query = "SELECT body FROMdede_addonarticle
where aid=’$arcid’";
$row = $dsql>GetOne($query);
$preg = "/<img.*?src=[‘"](.+?)[‘"].*?>/i";
preg_match_all($preg, $row[‘body’], $match);
return $match[1][0];
}
“`
3、保存文件。
4、在模板中调用:
使用以下代码在HTML模板中进行调用:
“`html
[field:litpic function=bigimg(‘@me’)/]
“`
或者:
“`html
{dede:field name=’litpic’ function="bigimg(@me)"/}
“`
方法三:修改调用标签文件
1、找到并打开文件:
进入DedeCMS根目录,找到“include/taglib/arclist.lib.php”文件。
2、在文件中找到并修改函数:
找到function lib_arclistDone()函数。
在$row[]数组的下面加入以下代码:
“`php
if(GetFirstImg($row[‘id’]) != "") {
$row[‘firstimg’] = GetFirstImg($row[‘id’]);
}
“`
3、保存文件。
4、在模板中调用:
使用以下代码在HTML模板中进行调用:
“`html
{dede:field name=’firstimg’/}
“`
相关问答FAQs
问题1:为什么需要修改include/extend.func.php文件?
解答:include/extend.func.php文件中包含了DedeCMS的一些扩展函数,通过在这个文件中添加自定义函数,可以实现一些特殊的功能需求,比如调用文章的第一张原始图片,这种方法可以灵活地对文章内容进行处理,满足不同的展示需求。
问题2:如果文章中没有图片怎么办?
解答:如果文章中没有图片,上述方法可能会返回空值,为了避免这种情况,可以在模板中设置一个默认的图片路径,当获取不到第一张图片时,显示默认图片。
{dede:field name='litpic' function="firstimg(@me)" default="path/to/default/image.jpg" /}
这样即使文章中没有图片,也能保证页面的正常显示。
通过以上步骤,你可以在DedeCMS中成功调用文章的第一张原始图片,而不是缩略图,希望这些方法对你有所帮助!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1108730.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复