zblog文章中有图时显示缩略图,无图时只显示摘要文字的方法
当前的zblog带缩略图主题模板,大都是采用了文章中有图时,提取第一张图片作为缩略图,文章内容中无图时,自定义一张或者几张图片作为默认缩略图的方式。有不少用户希望,无图时只显示摘要文字,通过什么方法实现呢?
1、通过IF判断语句识别内容是否有图,不同的返回结果使用不同模板,置顶文章单独模板。将代码放到首页文件中,判断页面代码处。
{php} $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";//判断文章是否含有图片 $content = $article->Content; preg_match_all($pattern,$content,$matchContent); {/php} {if isset($matchContent[1][0])} {template:post-multi}//有图模版 {else} {template:post-multi-wutu}//无图模版 {/if}
新建有图模板post-multi.php文件,文件内容如下。
<ul class="jieshao"> <h1><a href="{$article.Url}" target="_blank">{$article.Title}</a> <span>{$article.Category.Name}</span> </h1> <li><p ><a href="{$article.Url}" title="{$article.Title}"><img src="{$matchContent[1][0];}" style="float:left;" width="120" height="75" /></a> {php} $temp = preg_replace('/[\r\n\s]+/', '', trim(SubStrUTF8(Transferhtml($article->Intro,'[nohtml]'),150)).'...'); {/php} {$temp} </p></li></ul>
新建无图模板post-multi-wutu.php文件,内容如下。
<ul class="jieshao"> <h1><a href="{$article.Url}" target="_blank">{$article.Title}</a> <span>{$article.Category.Name}</span> </h1> <li><p > {php} $temp = preg_replace('/[\r\n\s]+/', '', trim(SubStrUTF8(Transferhtml($article->Intro,'[nohtml]'),150)).'...'); {/php}{$temp}</p></li></ul>
以上代码需配合CSS完美使用,不同的主题风格所用到的CSS样式也不同,这里就不再赘述,有兴趣的站长可自行折腾。