有时候我们看到其他的博客网站上面,它的列表页里可以展示文章的图片和数量,如下图:

这样看起来就比较美观,不再是单一的缩略图。这是怎么做到的呢?这个是效果:

以下是极致CMS获取文章图片和图片数量的教程。
第一步 获取文章图片
请将以下代码粘贴到列表页所需要的位置中,
{foreach $lists as $v}
<!-- 获取文章是否有图片 -->
{php
$pattern='/<img.*?src="(.*?)".*?>/is';
$r = preg_match_all($pattern,$v['body'],$imgslist);
/}
{if($r)}
<!--内容有图片输出这里-->
{foreach $imgslist[1] as $img}
<img src="{$img}" alt="{$v['title']}"/>
{/foreach}
{else}
<!--内容无图片输出这里-->
{/if}
{/foreach}有图就显示,没有图就不显示。样式自己再调整。
第二步 获取图片图片数量
请将以下代码粘贴到列表页所需要的位置中。
{fun substr_count($v[body],'<img')}样式自己调整。
引申
如何做成文章列表无图、单图和只显示4张图?
前提:当文章里有图时,极致CMS会抽取文章里的第一张图作为缩略图。
1、文章里有图,文章里的图小于3张,则只显示单图,即1张;
2、文章里有图,且文章里的图大于等于4张,则显示为4张;
3、文章里无图,且没有缩略图,则不显示图片。
以下为实现代码:
{foreach $lists as $v}
<!-- 有缩略图则输出这里 -->
{if($v['litpic'])}
<!-- 获取文章中的图片数量 -->
{php $pics_num = substr_count($v[body],'<img')/}
{if($pics_num < 3)}
<!-- 文章中的图片小于3张则输出这里 -->
{else}
<!-- 文章中图片大于3张则输出这里 -->
{php
$pattern='/<img.*?src="(.*?)".*?>/is';
$r = preg_match_all($pattern,$v['body'],$imgslist);
/}
{if($r)}
{php $i=1;/}
{foreach $imgslist[1] as $img}
{if($i < 4)}
<!-- 输出4张图则写4,输出5张图则写5 -->
<li><img src="{$img}" alt="{$v['title']}"></li>
{/if}
{php $i++;/}
{/foreach}
{/if}
{/if}
{else}
<!-- 无缩略图则输出这里 -->
{/if}
{/foreach}
