Typecho自动调用文章第一张图作为缩略图或者使用随机缩略图

in Typecho with 0 comment

在Typecho中,如果没有为文章指定缩略图,可以通过编写自定义函数来显示随机图片作为缩略图。这种方法通常涉及以下几个步骤:

‌确定随机图片的来源‌:首先需要确定随机图片的存储位置,这可以是一个专门的文件夹,其中包含多个图片文件。

‌编写自定义函数‌:在Typecho主题的:[Functions.php]文件中编写自定义函数,该函数负责生成随机缩略图。这个函数通常包括生成随机数、从指定文件夹中选择图片、以及返回图片URL等操作。

‌在模板中调用函数‌:在需要显示缩略图的地方调用这个自定义函数,以便在文章没有指定缩略图时显示随机图片。

例如,可以通过编写如下代码来实现这一功能:

首先,在Functions.php中定义一个函数,如thumb($cid),该函数检查文章是否有指定缩略图,如果没有,则从指定文件夹中随机选择一张图片作为缩略图‌1。
然后,在模板文件中调用这个函数,例如使用<?php echo thumb($this->cid); ?>来在需要的位置显示缩略图‌1。
此外,还可以通过正则表达式解析文章内容,优先选择HTML5、Markdown内联式和脚部式的图片作为缩略图。如果文章内无图片,则显示一张随机生成的缩略图‌2。这种方法提供了更大的灵活性,允许根据文章内容动态选择或生成缩略图。

通过这些方法,可以在Typecho中没有指定缩略图的情况下,依然能够展示美观且随机的缩略图,提升用户体验和网站的视觉吸引力。

脚本内容

function thumb($cid) {
if (empty($imgurl)) {
$rand_num = 10; //随机图片数量,根据图片目录中图片实际数量设置
if ($rand_num == 0) {
$imgurl = "随机图片存放目录/0.jpg";
//如果$rand_num = 0,则显示默认图片,须命名为"0.jpg",注意是绝对地址
}else{
$imgurl = "随机图片存放目录/".rand(1,$rand_num).".jpg";
//随机图片,须按"1.jpg","2.jpg","3.jpg"...的顺序命名,注意是绝对地址
}
}
$db = Typecho_Db::get();
$rs = $db->fetchRow($db->select('table.contents.text')
->from('table.contents')
->where('table.contents.type = ?', 'attachment')
->where('table.contents.parent= ?', $cid)
->order('table.contents.cid', Typecho_Db::SORT_ASC)
->limit(1));
$img = unserialize($rs['text']);
if (empty($img)){
echo $imgurl;
}
else{
echo '你的博客地址'.$img['path'];
}
}

根据上面的内容自己修改。然后将代码添加到当前主题Functions.php 文件中。

调用代码

<?php echo thumb($this->cid); ?>

在模板缩略图位置调用即可。

Responses
2016lengh.gif2016kun.gif2016db.gif2016baojin.gif2016jk.gif2016kb.gif2016qq.gif2016zj.gif2016qiao.gif2016am.gif2016kk.gif2016qd.gif2016gg.gif2016lh.gif2016wq.gif2016gz.gif2016zhh.gif2016ll.gif2016shuai.gif2016kel.gif2016zk.gif