在WordPress这个强大的内容管理系统中,图片的处理是不可或缺的一环。而生成缩略图,更是让网站看起来更加美观、加载速度更快的关键步骤。今天,我就来和大家分享一下WordPress生成缩略图的各种技巧和注意事项,让你轻松掌握这个秘密武器!
一、什么是缩略图?
缩略图,顾名思义,就是将图片缩小到一定尺寸后的图像。在WordPress中,缩略图主要用于显示文章、分类、标签等内容的封面图片,以及评论、媒体库等地方的图片预览。通过生成缩略图,可以大大提升网站的视觉效果和用户体验。
二、WordPress生成缩略图的方法
WordPress提供了多种生成缩略图的方法,下面我将逐一介绍:
1. 使用主题自带的缩略图尺寸
许多WordPress主题都提供了自定义缩略图尺寸的功能。你只需在主题设置中找到缩略图尺寸设置,并选择合适的尺寸即可。以下是一些常见主题的缩略图尺寸设置方法:
| 主题名称 | 缩略图尺寸设置位置 |
|---|---|
| TwentyTwenty-One | 主题设置>媒体>缩略图尺寸 |
| Astra | 主题设置>媒体>缩略图尺寸 |
| OceanWP | 主题设置>媒体>缩略图尺寸 |
2. 使用插件生成缩略图
除了主题自带的缩略图尺寸设置外,还有很多第三方插件可以帮助我们生成不同尺寸的缩略图。以下是一些常用的WordPress缩略图插件:
| 插件名称 | 功能 |
|---|---|
| RegenerateThumbnails | 重新生成所有已上传图片的缩略图 |
| ThumbnailMaster | 生成多种尺寸的缩略图,并支持自定义尺寸 |
| Smush | 压缩图片并生成多种尺寸的缩略图 |
3. 使用代码生成缩略图
如果你熟悉WordPress的代码,还可以通过编写函数来自定义缩略图的尺寸。以下是一个简单的代码示例:
“`php
function custom_thumbnail_size() {
add_image_size(‘custom-size’, 300, 200, true);
}
add_action(‘after_setup_theme’, ‘custom_thumbnail_size’);
“`
这段代码会创建一个名为“custom-size”的缩略图尺寸,宽度为300像素,高度为200像素,并且保持图片的原始比例。
三、WordPress生成缩略图的注意事项
在生成缩略图时,我们需要注意以下几点:
1. 图片质量
在生成缩略图时,要注意图片的质量。过低的图片质量会导致图片模糊不清,而过高的图片质量则会导致文件大小过大,影响网站加载速度。建议使用中等质量的图片进行缩略图生成。
2. 图片格式
选择合适的图片格式也是非常重要的。常见的图片格式有JPEG、PNG和GIF。JPEG格式适合存储照片,PNG格式适合存储透明背景的图片,而GIF格式则适合存储动画图片。
3. 图片尺寸
根据实际需求,选择合适的图片尺寸。一般来说,缩略图的尺寸不宜过大,以免影响网站加载速度。
4. 图片数量
在生成缩略图时,要注意图片的数量。过多的图片会导致服务器压力过大,影响网站性能。
四、总结
WordPress生成缩略图是网站优化过程中非常重要的一环。通过掌握以上方法,你可以轻松地生成各种尺寸的缩略图,提升网站的视觉效果和用户体验。希望本文能对你有所帮助!
如何开启WordPress缩略图
一、开启缩略功能
在主题的functions.php中,添加一段代码,代码如下:
add_theme_support('post-thumbnails');
如果你仅想让文章信息开启缩略图功能,则使用以下代码:
add_theme_support('post-thumbnails', array('post'));
如果你仅想让页面信息开启缩略图功能,则使用以下代码:
add_theme_support('post-thumbnails', array('page'));
二、设置缩略图大小
三、编辑文章,上传缩略图
上传的图片将保持在/wp-content/uploads
四、调用缩略图
判断一篇文章是否存在缩略图,如果有,则显示缩略图,否则显示默认缩略图。
<?php if( has_post_thumbnail()):?>
<?php the_post_thumbnail('thumbnail');?>
<?php else:?>
//显示默认图片
<?php endif;?>
the_post_thumbnail可以是字符串或数组
a.字符串参数时:thumbnail(小尺寸)、medium(中等尺寸)、large(大尺寸)、full(完整尺寸)
<?php the_post_thumbnail('thumbnail');?>
b.数组参数
//尺寸60×60
<?php the_post_thumbnail( array(60,60));?>
c.默认尺寸:
<?php the_post_thumbnail();?>
五、add_image_size
如果大中小满足不了你的尺寸可使用
add_image_size('newchicun',148,100,$crop);
使用时:
<?php the_post_thumbnail('newchicun');?>
如何使用Auto Post Thumbnail给WordPress文章生成缩略图
之前使用的主题并未启用WordPress缩略图功能,更换主题Point后便
发现没有缩略图展示。鉴于已经有了一定数量的已发表文章,所以到后台一个一个给文章添加缩略图就有些烦杂和不现实了。通过搜索找到了Auto Post
Thumbnail这款插件,该插件能够批量生成文章缩略图。
Auto Post
Thumbnail直接调用文章中第一张图片来生成缩略图,支持后台上传的图片和外链图床的图片,生成的缩略图将会存放在WordPress媒体库中。对
于需要批量生成文章缩略图和不适用WordPress后台撰写文章的人来说,Auto Post
Thumbnail将能方便地生成文章缩略图,该插件首次使用时可手动批量生成已发表文章缩略图。
进入WordPress后台找到设置中的Auto Post Thumbnail,
点击Generate Thumbnails开始批量生成文章缩略图,如果一篇文章已经存在缩略图则会跳过该文章。对于新发表的文章,Auto Post Thumbnail会在文章第一次被访问后生成缩略图。
你可以通过后台搜索Auto Post Thumbnail或是通过下载地址下载并上传完成Auto Post Thumbnail插件安装。
wordpress缩略图问题
三种方法调取缩略图。
<1>最方便是使用插件,虽然很多人使用WP-Thumbnails,但我觉得thumbnail-for-excerpts比较适合新手,你只需要进入后台进行激活!然后其他统统不用管了!该插件会自动检测你文章的第一幅图片作为摘要缩略图!不管该图片是不是上传到wordpress文件下,即使是外链图片同样有效。
<2>自定义字段,比较的麻烦,每次都要手动操作。具体到“美设之家”了解。
<3>如果你想使用代码来实现的话,分两种情况,一种是文章有图片的调取第一张,但如果文章没图片首页会不协调。另一种情况是,文章有图片自动调取第一张,如果文章没图片,则调取放进去的图片,并随机显示出来。
如果不嫌折腾,跟着操作。
function wpu_thumbnail(){ global$post; if( has_post_thumbnail()){$domsxe= simplexml_load_string(get_the_post_thumbnail());$thumbnailsrc=$domsxe->attributes()->src; echo'<img width=”200″ height=”150″ src=”'.$thumbnailsrc.'” alt=”'.trim(strip_tags($post->post_title)).'”/>';} else{$content=$post->post_content; preg_match_all('/<img.*?(?:|\\t|\\r|\\n)?src=[\'”]?(.+?)[\'”]?(?:(?:|\\t|\\r|\\n)+.*?)?>/sim',$content,$strResult, PREG_PATTERN_ORDER);$n= count($strResult[1]); if($n> 0){ echo'<img width=”200″ height=”150″ src=”'.$strResult[1][0].'” alt=”'.trim(strip_tags($post->post_title)).'”/>';}else{$random= mt_rand(1, 5); echo'<img width=”200″ height=”150″ src=”'.get_bloginfo('template_url').'/img/thumb/img'.$random.'.png” alt=”'.trim(strip_tags($post->post_title)).'”/>';}}}代码放到functions.php里,然后在主题模板里新建一个“img”文件夹,然后在img文件夹里再创建一个“thumb”文件夹。准备好5张随机图片放进刚建好的thumb文件夹里,需要重点提一下的是图片的后缀名必须更改为img1.png,img2.png,img3.png,img4.png,img5.png。最后在所需要的地方调用出来。
<?php wpu_thumbnail();?>不懂再问







