第一种
说它是自动识别,其实只是用了字符串切割的方法,如果勾选提取第一个图片萎缩路人图的话,文章的缩略图和第一张图片只多了一个“-lp”的字符串,
用php的“str_replace”函数切割一下就行了。方法如下:
打开 /include/common.func.php在最后面加入如下代码:
0 1 2 3 4 |
function firstpic($str_pic) { $str_sub=str_replace("-lp","","$str_pic"); //删除缩略图中的"-lp"。 return $str_sub; } |
标签中调用:
0 |
[field:litpic function=firstpic('@me')/] |
直接调用:
0 |
{dede:field name='litpic' function="firstpic(@me)"/} |
第二种
通过比较明显第二种方法比较好。但是如果自己上传缩略图的话,第二种就用不了了,这时候就要再用另一种方法:
打开 /include/helpers/archive.helper.php 在最后面加入如下代码
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/** * 调用缩略图的原始图片 * * @param string aid * @return string */ if(!function_exists('getImgs')) { function getImgs($aid) { global $dsql; $query = "SELECT channel FROM `#@__archives` WHERE id='$aid'"; $row = $dsql->GetOne($query); $row = GetChannelTable($row['channel']); $query = "select body FROM `{$row['addtable']}` where aid='$aid'"; $row = $dsql->GetOne($query); preg_match('/<img[^>]*src[=\"\'\s]+([^\.]*\.[^\"\'>]*)[\"\']?[^>]*>/',$row['body'],$arr); return $arr[1]; } } |
或者,可以简化一些:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** * 调用缩略图的原始图片 * * @param string aid * @return string */ if(!function_exists('getImgs')) { function getImgs($aid) { $query = "select body FROM `#@__addonarticle` where aid='$aid'"; $row = $dsql->GetOne($query); preg_match('/<img[^>]*src[=\"\'\s]+([^\.]*\.[^\"\'>]*)[\"\']?[^>]*>/',$row['body'],$arr); return $arr[1]; } } |
标签中调用:
0 |
[field:id function=getImgs(@me)/] |
具体怎么实现功能,还要看自己网站的实际情况了。