dede 调用第一张原图

前言

很多时候网站需要到清晰的文章图片,但是dedecms自带的[field:litpic/]标签调用的是系统自动生成的缩略图,为了解决这一问题,今天给大家分享一个调用文章内第一张图片的原图的办法!

修改位置

修改include/extend.func.php

在底部添加如下代码

/*文章内容提取第一张图片*/
if(!function_exists('getBodyonepic'))
{
function getBodyonepic($id, $addField='body')
{
global $dsql;
$row = $dsql->GetOne("SELECT a.litpic,c.addtable FROM dede_archives AS a LEFT JOIN dede_channeltype AS c ON a.channel=c.id where a.id='$id'");
$addtable = trim($row['addtable']);
if($row['litpic'] == '-' || $row['litpic'] == '')
{
$litpic = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
}
$row = $dsql->GetOne("SELECT $addField FROM `$addtable` WHERE aid=$id");
$body = $row["$addField"];
preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/",$body,$matches);
$imgsrc_arr = array_unique($matches[3]);
$result = $imgsrc_arr[0] ? $imgsrc_arr[0] : $litpic;
return $result;
}
}

 

首页/列表页标签调用
[field:id function=getBodyonepic(@me)/]

内容页标签调用
{dede:field.id function=getBodyonepic(@me)/}

调用示例

{dede:list pagesize='8'}
<li>
<a href='[field:arcurl/]' title="[field:fulltitle/]">
<p><img src='[field:id function=getBodyonepic(@me)/]' /></p>
<div class='newswz'>
<h2>[field:fulltitle function='(strlen("@me")>60 ? cn_substr("@me",58)."..." : "@me")'/]</h2>
<div class='newsmemo More3HangSLH'>[field:description function="cn_substr(@me,180)"/]...</div>
<span>发布时间:[field:pubdate function="GetDateTimeMK(@me)"/] 来源:[field:source /]</span>
</div>
</a>
</li>
{/dede:list}

标签解释

[field:fulltitle function='(strlen("@me")>60 ? cn_substr("@me",58)."..." : "@me")'/]

调用文章全标题,标题字数大于60时显示58个字符并附加…  详情见https://www.sxyye.com/archives/1244.html

未经作者允许不得转载:大江博客 » dede 调用第一张原图
博主微信:欢迎加微一起交流
欢迎加微一起交流,每天分享更多有趣的事儿,有趣有料!
2000人已加
分享到:
赞(0)

说点啥吧抢沙发

评论前必须 ☞☞ 登录/注册 !