海天无影's Blog

WordPress自动设置文章缩略图

/ 54阅 / 0评 / 0

经常会在网站首页调用文章的时候,需要有图片一起展示,wordpress本身有缩略图功能,可以通过 has_post_thumbnail 来判断是否有缩略图, the_post_thumbnail 来调用。

但是wordpress的缩略图需要手动设置,并不能自动获取文章内的图片来作为缩略图,通过以下方法完成缩略图自动设置。

自动设置缩略图的逻辑:

  1. 如果设置缩略图,则调用缩略图;
  2. 如果没有设置缩略图,则调用文章内第一张图片为缩略图;
  3. 如果文章内也没有图片,那么则使用默认图片为缩略图。
function dm_the_thumbnail() {
    global $post;
    // 判断该文章是否设置的缩略图,如果有则直接显示
    if ( has_post_thumbnail() ) {
        $img_id = get_post_thumbnail_id();
        $img_url = wp_get_attachment_image_src($img_id);
        $img_url = $img_url[0];
        return $img_url;//这里直接输出特色图片
    } 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){ // 如果文章内包含有图片,就用第一张图片做为缩略图
            return $strResult[1][0] ;
        }else { // 如果文章内没有图片,则用默认的图片。
           return  get_stylesheet_directory_uri() . '/imgages/thumb.jpg';  //具体路径根据自己调整
        }
    }
}

将以上文件添加到functions.php文件内,在需要使用缩略图的地方,使用函数 dm_the_thumbnail() 即可完成缩略图URL的调用。

可搭配wordpress自动剪裁图片Aqua-Resizer的插件,来完成首页调用图片的同意样式。

发表评论

电子邮件地址不会被公开。