做出来的效果就是:
缩略图显示,依次是附件中的图片,若不存在,输出文章的第一张图片,若不存在,输出对应的tag缩略名图片,若是未配置的tag,则输出随机图片,若文章不存在tag,则输出随机图片。
首先在functions.php添加
/** 输出文章缩略图 */
function showThumbnail($widget)
{
// 当文章无图片时的默认缩略图
$rand = rand(1,99); // 随机 1-99 张缩略图
$random = $widget->widget('Widget_Options')->themeUrl . '/img/sj/' . $rand . '.jpg'; // 随机缩略图路径
// $random = $widget->widget('Widget_Options')->themeUrl . '/img/mr.jpg'; // 若只想要一张默认缩略图请删除本行开头的"//",需要在img文件夹下放个mr.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
if ($widget->tags) {
foreach ($widget->tags as $tag) {
if($tag['slug']==daima||$tag['slug']==anzhuo){//if语句判断标签缩略名,如果是则输出下面文件夹内的图片
$a= $widget->widget('Widget_Options')->themeUrl . '/img/tag/' . $tag['slug'] . '.jpg';
echo $a;
}else {
echo $random;//没有匹配的标签图片,则随机输出图片
}
break;
}
} else {
echo $random;
}
}
模板中需要添加缩略图地址的地方添加
<?php showThumbnail($this); ?>
图片放置位置,在对应模板根目录里,添加img文件夹,然后新建文件夹sj,里面放图片,格式要求1.jpg...99.jpg,然后再在img文件夹下新建文件夹tag里面放置tag缩略名对应的图片,按照上述代码的话需要放置两站图片,命名分别为daima.jpg和anbzhuo.jpg。
最后提示
typecho的标签缩略名后台是可以设置的,不设置的话默认是和标签名字一样。比如该篇文章标签名字是typecho,默认他的缩略名也是typecho,但我把它的缩略名改成了te,也就是说这篇文章的缩略图是te.jpg。
版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/typechosuo-lue-tu-jia-ru-gen-ju-biao-qian-suo-lue-ming-shu-chu-suo-lue-tu.html
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
终于找到了一个能用的教程
泽泽挺靠谱吧
你好,我按照博主的弄了,显示的是图片链接,这是怎么回事呢?
这样就行了 <img src="<?php showThumbnail($this); ?>" />
当我启用了缓存之后,点击首页标题,缩略图都不变,只有按F5刷新才会变,是图片被缓存了吗?
求解是什么问题呢,你的博客没有这个问题呀。
我截图了:https://i4.piimg.com/567571/d7559f379625582d.gif
前面两次是直接点的标题,缩略图没有变,后面两次是按F5刷新的,缩略图变了。
缓存是在.htaccess 加了这些语句
开启ExpiresActive On
设置默认的缓存时间ExpiresDefault A2592000
以下是针对不同的文件类型设置不同的缓存时间ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A604800
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A900
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/svg A604800
发现了问题原因了,我把html都给缓存了,,#[笑尿]
我没开缓存所以才没问题的#[狗]
抱走了随机输出图片的代码了┗|`O′|┛ 嗷~~#[大笑]
我找这些图用了超长的时间,最初只是找些简单的表情包
目前我已经增加到了120多张,都裁剪到140x140了
那只有增加图片个数来减小多张相同的概率了#[吃瓜]
我的也是没图的时候才会随机输出哈!#[大笑]
我的只是文章没图时才随机的,有图还是用文章的相关图片比较好( ̄▽ ̄)
对呀,随机避免了视觉疲劳#[滑之稽]
随机很吊的,就是偶尔会同一页不同的文章显示相同的图片
我也是搞了好久才把多说搞定
沙发,还是没学会怎么整多说插件
额,那你换个带自带评论的模板吧