Typecho是一个很好的博客程序,很多东西可以DIY,比如可以纯代码输出文章缩略图。采用文章第一张图片作为缩略图,无论是文章附件图片或者网络图片均可,当文章无图片时的可设置为默认缩略图或者随机图片或者分类图片。到主题functions.php文件插入以下代码:

代码1:无图时默认图片

/** 输出文章缩略图-无图时默认图片 */ 
function showThumbnail($widget)
{ 
    // 当文章无图片时的默认缩略图
    $random = $widget->widget('Widget_Options')->themeUrl . '/img/0.jpg'; // 默认缩略图路径
    $attach = $widget->attachments(1)->attachment;
    $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i';     
if (preg_match_all($pattern, $widget->content, $thumbUrl)) {
         echo $thumbUrl[1][0];
    } else     if ($attach->isImage) {
      echo $attach->url; 
    } else {
        echo $random;
    }
}

代码2:无图时随机图片

/** 输出文章缩略图-无图时随机图片 */ 
function showThumbnail($widget)
{ 
    // 当文章无图片时的随机缩略图
    $rand = rand(1,9); // 随机 1-9 张缩略图
    $random = $widget->widget('Widget_Options')->themeUrl . '/rand/' . $rand . '.jpg'; // 随机缩略图路径
    $attach = $widget->attachments(1)->attachment;
    $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; 
if (preg_match_all($pattern, $widget->content, $thumbUrl)) {
         echo $thumbUrl[1][0];
    } else     if ($attach->isImage) {
      echo $attach->url; 
    } else {
        echo $random;
    }
}

代码3:无图时分类图片

/** 输出文章缩略图-无图时分类图片 */ 
function showThumbnail($widget)
{ 
    // 当文章无图片时的分类缩略图
    $cate = $widget->categories[0]['mid']; // 分类的id缩略图
    $random = $widget->widget('Widget_Options')->themeUrl . '/cate/' . $cate . '.jpg'; // 分类缩略图路径
    $attach = $widget->attachments(1)->attachment;
    $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; 
if (preg_match_all($pattern, $widget->content, $thumbUrl)) {
         echo $thumbUrl[1][0];
    } else     if ($attach->isImage) {
      echo $attach->url; 
    } else {
        echo $random;
    }
}

使用方法:

在主题中对应位置加入:<?php showThumbnail($this); ?>

注意事项:

1、代码1需要在主题文件夹下建立img文件夹,放入默认图片0.jpg;

2、代码2需要在主题文件夹下建立rand文件夹,放入随机9张图片,并依次重命名为1.jpg、2.jpg直到9.jpg;

3、代码3需要在主题文件夹下建立cate文件夹,并根据分类的cid放入图片,并将cid命名为图片名,图片后缀为.jpg;

4、图片文件夹和后缀都可以修改,请自行修改。