今天给大家带来在Markdown文章的第一张图片获取方法。
编写思路
- 通过Typecho通用过滤器过滤文章内容
- 用正则匹配得出图片链接
- 提取第一个图片地址
实现代码
以下代码,放置在主题functions.php
中即可。
-
- function img_postthumb($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_counter = count($thumbUrl[0]);
- switch ($img_counter > 0) {
- case $allPics = 1:
- echo $img_src;
- break;
- default:
- echo "nopic.png";
- };
- }
调用方法
- <?php echo img_postthumb($this->cid); ?>