今天做dede时候列表页是图片展示,当我调用缩略图 [field:picname/] 的时候,发现图片失真,所以改成调用原图地址。
列表页调用原图
说它是自动识别,其实只是用了字符串切割的方法,如果勾选提取第一个图片缩略图的话,文章的缩略图和第一张图片只多了一个“-lp”的字符串,
用php的“str_replace”函数切割一下就行了。方法如下:
打开 /include/common.func.php在最后面加入如下代码:
/* 调取文章第一张图片地址 */
function firstimg($str_pic)
{
$str_sub=str_replace("-lp","","$str_pic"); //把缩略图中的‘"-lp"’ 删掉就是第一张图的地址了。
return $str_sub;
}
标签中调用:
[field:litpic function=firstpic('@me')/]
直接调用:
{dede:field name='litpic' function="firstpic(@me)"/}
以下还有两种方法,选择适合自己的。
第一种
方法是网上很早流传的代码类似如下:
打开 /include/common.func.php在最后面加入如下代码:
function firstpic($str_pic)
{
$str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg
return $str_sub;
}
标签中调用:
[field:litpic function=firstpic('@me')/]
直接调用:
{dede:field name='litpic' function="firstpic(@me)"/}
这种方法可以是可以,但是我们用图片不一定全是jpg,可能是png、gif又或是其他格式,那么这种情况这个.jpg就不太合适了。
第二种
如果自己上传缩略图的话,貌似头一种就用不了了,这时候就要再用另一种方法:
打开 /include/helpers/archive.helper.php 在最后面加入如下代码
if(!function_exists('GetImgs'))
{
function GetImgs($aid)
{
global $dsql;
$query = "select body FROM `dede_addonarticle` where aid='$aid'";
$dsql->Execute('body',$query);
$row = $dsql->GetArray('body');
preg_match('//i',$row['plot'],$str);
$GImgs = $str[2];
return $GImgs;
}
}
标签中调用:
[field:id function=GetImgs(@me)/]
历史上的今天:
- 2020: 在三线城市工作是什么感受?(0)
- 2017: 日常感到无助,真心感到自己就是菜鸟了。(5)
- 2016: [作业]Lamp服务器搭建_校园版(0)
本文章百度已收录,若发现本站有任何侵犯您利益的内容,请及时邮件或留言联系,我会第一时间删除所有相关内容。
2019年1月15日 13:12 沙发
我用的第一套cms系统就是织梦
2019年1月15日 23:06 1层
@陈杰博客 那现在呢