其实这个需求在很多作者写主题模板时为了美观或者方便使用,都会将这个功能加上的。但很遗憾, 手中的其中一个主题“Fabulous” 并不支持 自动提取文章图片作为缩略图的功能。而且最郁闷的是,这个主题是“图片类主题”,每个文章必须要手动设置“特色图像”才会在首页显示正确的缩略图

Wordpress 主题首页 自动提取文章第一张图片并设为缩略图

要解决这问题,经搜索大致都差不多,而且代码一样,每个文章底部都差不多有这样的提示“版权所有,严禁采集转载。”这解决代码每个人的都一样的,但都有版权,在这里就不转载了,自己敲吧。

解决办法:

1. 找到主题的function.php,加入以下代码

function catch_that_image() { 
global $post, $posts; 
$first_img = ''; 
ob_start(); 
ob_end_clean(); 
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); 
  
//获取文章中第一张图片的路径并输出 
$first_img = $matches [1] [0]; 
  
//如果文章无图片,获取自定义图片 
if(empty($first_img)){ //Defines a default image 
$first_img = "/images/default.jpg"; 
  
//请自行设置一张default.jpg图片 
} 
  
return $first_img; 
}

Wordpress 主题首页 自动提取文章第一张图片并设为缩略图

2. 找到主题中首页要显示图片的代码,用以下代码输出 图片地址

<?php echo catch_that_image() ?>

本主题的修改位置是:content.php,找到 loop-entry-thumbnail,修改img src就可以,具体如图:

我这里修改的是:把“wpex_get_featured_img_url() ;”改成:“echo wpex_get_featured_img_url()? wpex_get_featured_img_url() : catch_that_image( );”,原因是原本主题就会 获取已经设置了 特色图像的文章的缩略图URL,这里只需要做个判断,把获取不到 特色图像URL的文章 自动提取第一张图片地址即可。

Wordpress 主题首页 自动提取文章第一张图片并设为缩略图