其实这个需求在很多作者写主题模板时为了美观或者方便使用,都会将这个功能加上的。但很遗憾, 手中的其中一个主题“Fabulous” 并不支持 自动提取文章图片作为缩略图的功能。而且最郁闷的是,这个主题是“图片类主题”,每个文章必须要手动设置“特色图像”才会在首页显示正确的缩略图。
要解决这问题,经搜索大致都差不多,而且代码一样,每个文章底部都差不多有这样的提示“版权所有,严禁采集转载。”这解决代码每个人的都一样的,但都有版权,在这里就不转载了,自己敲吧。
解决办法:
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;
}
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的文章 自动提取第一张图片地址即可。