经常会在网站首页调用文章的时候,需要有图片一起展示,wordpress本身有缩略图功能,可以通过has_post_thumbnail
来判断是否有缩略图, the_post_thumbnail
来调用。
但是wordpress的缩略图需要手动设置,并不能自动获取文章内的图片来作为缩略图,通过以下方法完成缩略图自动设置。
自动设置缩略图的逻辑:
- 如果设置缩略图,则调用缩略图;
- 如果没有设置缩略图,则调用文章内第一张图片为缩略图;
- 如果文章内也没有图片,那么则使用默认图片为缩略图。
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的调用。