在运营WordPress网站的过程中,缩略图是我们展示的重要元素。有些时候,我们却发现文章没有缩略图,这可真是让人头疼啊!别急,今天就来给大家分享一下如何解决WordPress文章没缩略图的问题。
1. 文章没有缩略图的原因
我们来了解一下导致文章没有缩略图的原因。以下是一些常见的原因:
表格 1:文章没有缩略图的原因
原因 | 描述 |
---|---|
缺少图片 | 文章中没有添加图片,或者图片无法加载 |
图片尺寸不符合要求 | 图片尺寸过大或过小,不符合WordPress的缩略图尺寸要求 |
缺少插件 | 缺少生成缩略图的插件,如“RegenerateThumbnails”等 |
主题设置问题 | 主题的设置导致无法生成缩略图 |
服务器配置问题 | 服务器配置导致无法生成缩略图 |
2. 解决方法
下面我们来逐一解决上述问题。
2.1 检查文章中是否缺少图片
打开文章编辑页面,检查是否添加了图片。如果没有添加图片,请在文章中插入一张图片。
2.2 调整图片尺寸
如果文章中已经添加了图片,但仍然没有缩略图,那么可能是因为图片尺寸不符合WordPress的缩略图尺寸要求。以下是WordPress默认的缩略图尺寸:
表格 2:WordPress默认缩略图尺寸
尺寸 | 描述 |
---|---|
150×150 | |
300×300 | |
600×600 |
根据需要,您可以选择合适的尺寸调整图片。
2.3 安装并使用“Regenerate Thumbnails”插件
“Regenerate Thumbnails”插件可以帮助您生成文章的缩略图。以下是安装和使用该插件的方法:
1. 登录WordPress后台,进入“插件”页面。
2. 点击“添加新插件”按钮。
3. 在搜索框中输入“Regenerate Thumbnails”,然后点击“安装”按钮。
4. 安装完成后,点击“激活”按钮。
5. 进入“工具”菜单,找到“Regenerate Thumbnails”选项。
6. 点击“运行工具”按钮,然后选择需要生成缩略图的文章或所有文章。
7. 等待插件生成缩略图,完成后即可。
2.4 检查主题设置
如果上述方法都无法解决问题,那么可能是主题设置导致无法生成缩略图。在这种情况下,您可以尝试以下方法:
1. 更换一个支持缩略图生成的主题。
2. 在主题设置中,找到与缩略图相关的选项,并确保它们已经启用。
2.5 检查服务器配置
如果上述方法都无法解决问题,那么可能是服务器配置导致无法生成缩略图。在这种情况下,您可以尝试以下方法:
1. 联系您的网站主机,询问是否可以调整服务器配置以支持缩略图生成。
2. 考虑更换一个支持缩略图生成的网站主机。
3. 总结
通过以上方法,相信您已经解决了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');?>
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();?>不懂再问
wordpress怎么设置缩略图片不压缩 不拉伸
要使缩略图不压缩、不拉伸,大致有以下几步:
1、后台设置-多媒体里,将所有“缩略图大小”设置为空值
如果不想生成其他尺寸的图片,建议将“中等大小”、“大尺寸”都设置为空值
2、通过wp_get_additional_image_sizes()函数,可查看当前都有哪些图片尺寸设置
例如有以下值:
array(1){
[“post-thumbnail”]=>
array(3){
[“width”]=>
int(825)
[“height”]=>
int(510)
[“crop”]=>
bool(true)
}
}
这表示我当前的wp有设置post-thumbnail这个图像尺寸。凡是宽大于825高大于510的图片,在上传时都会进行裁切的。如果不想用这个尺寸去裁切,可以unset这个
如:
global$_wp_additional_image_sizes;
if(isset($_wp_additional_image_sizes['post-thumbnail']))
unset($_wp_additional_image_sizes['post-thumbnail']);
3、wordpress默认上传的图片精度为82,可查看
/wp-includes/-> class-wp-image-editor.php中$default_quality的默认指定值
为改变这个值,可向wp_editor_set_quality这个hooks添加函数
如:
add_filter('wp_editor_set_quality','wpdit_set_quality');
functionwpdit_set_quality($quality){
$quality=100;
return$quality;
}
通过以上几步,足够解决你的问题。