织梦网站列表页调用多张缩略图正确方法
我们使用织梦建网站时,往往需要在列表页调用文章缩略图来显示。常用的方法就是使用[field:picname/]标签来调用文章的后台的缩略图。但如果想调用文章中的图片,特别是调用文章中的多张图片,这个标签是无法实现的,需要使用织梦的函数来实现。
效果如下:
方法/步骤
第一步:将以下的函数文件粘贴到/include/extend.func.php,来创建一个函数;(下面的代码可能会编译导致后台空白,可以直接下载这个PHP文件:链接: https://pan.baidu.com/s/1txuub7_wka9BgjCvv3zB3Q 提取码: gki8)
/*
* 文章内容提取图片(多张)自定义输出
*/
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:list}里添加 addfields='body',如下:
{dede:list pagesize ='20' addfields='body'}
如果是首页调用,需要加上 channelid='1' 如下:
{dede:arclist row='11' titlelen='50' orderby='pubdate' channelid='1' addfields='body'}
<div class="imgtu clearfix">[field:body function=getBodypics(@me,4)/]</div>
{/dede:arclist}
第三步:使用以下的标签来自动调用文章中的图片;参数4代码调用的图片数量,可根据自己需要修改。
[field:body function=getBodypics(@me,4)/]
第四步:还需要进入Dedecms后台--核心--频道模型--内容模型管理--普通文章,点击进入后,在“列表附加字段”这个项目中添加字段:body
第五步:后台生成更新一下列表页,这样只要文章里有图片就会在列表页自动调用出来了。