WordPress自动设置文章缩略图

2021-06-24 10:16:40 浏览数 (1)

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

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

自动设置缩略图的逻辑:

  1. 如果设置缩略图,则调用缩略图;
  2. 如果没有设置缩略图,则调用文章内第一张图片为缩略图;
  3. 如果文章内也没有图片,那么则使用默认图片为缩略图。
代码语言:javascript复制
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的调用。

0 人点赞