织梦调用文章第一张图片,非缩略图,不限图片格式
文章目录
有时候我们在织梦建站时,需要在首页或者列表页调用较为清晰的图片,但是织梦默认的调用标签是:[field:litpic/],这个调用标签只能调用文章的缩略图,但是为了达到想要的美观效果,我们需要首页或列表页调用文章第一张图片作为封面图。
所以这个时候就需要我们进行二次开发
织梦调用文章第一张图片教程如下:
方法一:调用文章第一张图片限jpg格式
dede列表调用文章、软件或图集的第一张图片大图原图地址(非缩略图)
步骤:
1、找到include/extend.func.php
在结尾处添加如下代码:
//取第一张图地址
function firstimg($str_pic)
{
$str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg
return $str_sub;
}
方法二:调用文章第一张图片不限图片img格式
同样是修改上面include/extend.func.php文件,在结束部分添加如下代码:
//取第一张图地址
function firstimg($str_pic)
{
$str_sub=str_replace("-lp","","$str_pic"); //把缩略图中的‘"-lp"’ 删掉就是第一张图的地址了。
return $str_sub;
}
2、调用标签
调用标签有两种方式,第一种是直接调用文章第一张原图:{dede:field name='litpic' function="firstimg(@me)"/}
第二种是循环标签中调用:[field:litpic function=firstimg('@me')/]
方法三:调用文章单图或者多图,不通过缩略图
织梦文章内容提取第一张图片
打开 /include/extend.func.php 在最下面加入个方法
/**
* 文章内容提取第一张图片
*
* @access public
* @param string $id文档id
* @param string $addField字段名
* @return string
*/
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)/}
织梦文章内容提取图片(多张)自定义输出
打开 /include/extend.func.php 在最下面加入个方法
/**
* 文章内容提取图片(多张)自定义输出
*
* @access public
* @param string $string 文档内容
* @param string $num 输出几张
* @return string
*/
if(!function_exists('getBodypics'))
{
function getBodypics($string, $num)
{
preg_match_all("/<img([^>]*)s*src=('|")([^'"]+)('|")/",$string,$matches);
$imgsrc_arr = array_unique($matches[3]);
$count = count($imgsrc_arr);
$i = 0;
foreach($imgsrc_arr as $imgsrc)
{
if($i == $num) break;
$result .= "<img src="$imgsrc"/>";
$i++;
}
return $result;
}
}
首页/列表页标签调用
{dede:arclist typeid='' row='' channelid='填模型id' addfields='body'}
[field:body function=getBodypics(@me,5)/]
{/dede:arclist}
内容页标签调用
{dede:field.body function=getBodypics(@me,5)/}
注意,如果你没有修改include/extend.func.php这个文件的话,直接用这个调用标签,那么你的栏目和内容页面是没法生成的,就出出现,点击生成栏目页和文章页,程序无响应,也没有任何提示,以上便是小冬SEO教程网为大家提供的织梦调用文章第一张图片,而不是缩略图的调用标签教程。
版权保护: 本文由小冬SEO编辑发布,转载请保留链接: http://www.myseoyh.cn/cms/34.html