zblog模板制作最不可缺少的我想應(yīng)該就是縮略圖,其次是摘要了,現(xiàn)在的zblog用戶應(yīng)該很少純文字的文章,搭配一些圖片更合理,這時(shí)候最好加上縮略圖功能,讓整個(gè)網(wǎng)站看起來更飽滿,對于色彩和展示都有很大好處。所以老白制作的模板,基本都帶有縮略圖功能,而其中用到的縮略圖又分為幾種:
1、直接調(diào)取文章內(nèi)第一張圖片原圖,用CSS對圖片進(jìn)行限制縮略,當(dāng)無圖的時(shí)候調(diào)取一張隨機(jī)圖片顯示
2、調(diào)取第一張?jiān)瓐D并且配合縮略圖插件進(jìn)行剪裁成合適的尺寸顯示,當(dāng)無圖的時(shí)候隨機(jī)調(diào)取一張備用圖片
3、單獨(dú)上傳一個(gè)圖片作為文章縮略圖:(文章、標(biāo)簽、分類編輯中加入單獨(dú)縮略圖上傳功能(字段))
一、調(diào)取文章內(nèi)第一張?jiān)瓐D方法:
官方版:
隨機(jī)獲得文章中的四張圖片中的一張適用于多圖站點(diǎn),在模板文件中使用:
{php} $temp=mt_rand(1,4); $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; $content = $article->Content; preg_match_all($pattern,$content,$matchContent); if(isset($matchContent[1][0])) $temp=$matchContent[1][0]; else $temp=$zbp->host."zb_users/theme/$theme/style/images/random/$temp.jpg"; //需要在相應(yīng)位置放置4張jpg的文件,名稱為1,2,3,4 {/php} <img src="{$temp}" />
效率版:
效率版在zblog CMS模板中使用較多,避免每次調(diào)用都寫一遍上方的全部代碼:
function ydjijian_thumbnail($related) { global $zbp; $temp=mt_rand(1,4); $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; $content = $related->Content; preg_match_all($pattern,$content,$matchContent); if(isset($matchContent[1][0])){ $thumb=$matchContent[1][0]; }else{ $thumb=$zbp->host . "zb_users/theme/" .$zbp->theme. "/include/random/" .$temp. ".jpg"; } return $thumb; }
調(diào)用方法:{ydjijian_thumbnail($article)} ,ydjijian就是主題ID了
二、調(diào)取第一張圖,并對圖片進(jìn)行剪裁,而非CSS縮放,無圖隨機(jī)調(diào)用一張:
非插件版剪裁縮略圖片版:
//縮略圖 function 主題ID_thumbnail($id,$sltww, $slthh,$link) { global $zbp,$article; $article=GetPost((int)$id); $random = mt_rand(1, 10); preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?\/>/sim', $article->Content, $strResult, PREG_PATTERN_ORDER); $n = count($strResult[1]); $zdsuoluetu=$article->Metas->Blogs_suoluetu; if(empty($zdsuoluetu)){ if($n > 0){ $sltu=$strResult[1][0]; } else { $sltu="{$zbp->host}zb_users/theme/{$zbp->theme}/image/random/{$random}.jpg"; } }else{ $sltu=$zdsuoluetu; } $sltu="<img src=\"{$zbp->host}zb_users/theme/{$zbp->theme}/template/timthumb.php?src={$sltu}&w={$sltww}&h={$slthh}&zc=1\" alt=\"{$article->Title}\" />"; if($link==1){ $sltu="<a href=\"{$article->Url}\" title=\"{$article->Title}\">{$sltu}</a>"; } return $sltu; }
其中,timthumb.php下載:
這種剪裁方法比較消耗服務(wù)器資源,在服務(wù)器端也沒有緩存,如果是小型站點(diǎn),可以使用,大站的話建議其它方法生成靜態(tài)圖片進(jìn)行調(diào)用,節(jié)省資源。
支持插件剪裁縮略圖版:
注意,必須安裝和開啟IMAGE縮略圖插件才可以:
function ydproduct_suoluetu($art,$width,$height) { $suo =''; global $zbp; $noimg=mt_rand(1,4); IMAGE::getPics($art,$width,$height,4); if ($art->IMAGE_COUNT>0){ $suo=$art->IMAGE[0]; }else{ $suo=$zbp->host . "zb_users/theme/" .$zbp->theme. "/include/random/" .$noimg. ".jpg"; } return $suo; }
調(diào)用方法:{ydyuandaima_suoluetu($article,110,110)}