/include/dedetag.class.php
文件,以便使用自定义标签功能。,,“php,,
`,,2. 创建一个自定义标签函数,用于提取文章内容中的图片地址。,,
“php,在Dedecms(织梦内容管理系统)中,列表页读取内容内的图片是一个常见的需求,本文将详细介绍如何在列表页中实现这一功能,包括自定义函数、后台配置和模板标签调用三个步骤。
第一步:自定义函数文件
需要在Dedecms根目录下的include/extend.func.php
文件中添加自定义函数,具体代码如下:
// extend.func.php 文件在最后添加以下代码 /* 列表页调用文章内容中的所有图片 */ 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 .= "<li><img src="$imgsrc"/></li>"; //这里可以给调用图片增加一些样式等,$result .= "<img class='imgs' src="$imgsrc"/>"; $i++; } return $result; }
第二步:织梦后台配置
在织梦后台选择“核心” > “频道模型” > “内容模型管理” > “基本设置” > “列表附加字段”,添加body
字段,确保这个字段可以在列表的底层模板中获得。
第三步:前台模板标签调用
以文章列表页为例,在模板文件list_article.htm
中使用如下代码:
{dede:list pagesize='3' addfields='body' channelid='1'} <div class="portfolioslideshow flexslider animateonscroll"> <ul class="slides"> [field:body function=getbodypics(@me,5)/] </ul> <ul class="flexdirectionnav"> <li><a class="flexprev" href="#"></a></li> <li><a class="flexnext" href="#"></a></li> </ul> </div> {/dede:list}
相关问答FAQs
Q1:如何调整获取图片的数量?
A1:可以通过修改getbodypics
函数中的第二个参数来调整获取图片的数量。[field:body function=getbodypics(@me,5)/]
中的5
表示获取5张图片,如果需要获取更多或更少的图片,只需更改该数字即可。
Q2:如何在列表页中调用图集内容中的多张图片?
A2:可以使用Getimgs
函数来实现,首先在include/common.func.php
文件中添加Getimgs
函数:
function Getimgs($aid, $imgwith = 300, $imgheight = 270, $num = 0, $style = ''){ global $dsql; $imgurls = ''; $row = $dsql>getOne("Selectimgurls
From#@__addonimages
where aid='$aid'"); $imgurls = $row['imgurls']; preg_match_all("/{dede:img (.*)}(.*){/dede:img/isU", $imgurls, $wordcount); $count = count($wordcount[2]); if ($num > $count || $num == 0){ $num = $count; } for($i = 0;$i < $num;$i++){ if($style == 'li'){ $imglist .= "<li><a href=#" . $i . "><img src=". trim($wordcount[2][$i]) . " width= '" .$imgwith ."'height='" . $imgheight . "'></li></a>"; }else{ $imglist .= "<img src= " . trim($wordcount[2][$i]) . " width='" . $imgwith . "'height='" . $imgheight . "'>"; } } return $imglist; }
然后在列表页模板中使用如下代码调用:
{dede:list pagesize='12'} [field:id function="Getimgs(@me,80,80,9)" /] {/dede:list}
通过以上步骤,你可以在Dedecms列表页中成功读取并显示内容内的图片,希望这些信息对你有所帮助!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1222859.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复