编写思路
- 通过 Typecho 通用过滤器过滤文章内容
- 用正则匹配得出图片链接
- 提取第一个图片地址
实现代码
以下代码,放置在主题 functions.php 中即可。
function getMarkdownPostThumb($cid)
{
$db = Typecho_Db::get();
$rs = $db->fetchRow($db->select('table.contents.text')
->from('table.contents')
->where('table.contents.cid=?', $cid)
->order('table.contents.cid', Typecho_Db::SORT_ASC)
->limit(1));
$final = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($rs);
preg_match_all("/(http:\/\/)[^>]*?.(png|jpg)/i", $final['text'], $thumbUrl); // 通过正则获取图片地址
$img_src = $thumbUrl[0][0]; // 将赋值给img_src
$img_counter = count($thumbUrl[0]); // 一个src地址的计数器
switch ($img_counter > 0) {
case $allPics = 1:
echo $img_src; // 当找到一个src地址的时候,输出缩略图
break;
default:
echo 'nopic.png'; // 没找到(默认情况下),输出默认图片
};
}
调用方法
<?php getMarkdownPostThumb($this->cid); ?>
get,感謝分享~
好好地博客不要关掉,给自己留一个纪念吧!