让 WordPress 缩略图机制支持URL外链图片

最近为一位朋友定制一款图片主题,为其使用了 七牛云存储 服务,但是想让缩略图支持URL外链引用图片,虽然说七牛有api可以直接调用不同大小的图片,但是对于某人的博客来说,或许是大材小用。对于很多朋友来说,这个api可能很方便,但是却非常难以折腾。这里周良为大家提供一个最简单的方法(非调用API,而是所有的外链图片 WordPress 都可以支持的方法)。

下面是本方法的特地:

  • 支持手动上传缩略图
  • 支持缩略图外链引用
  • 如果文章内包含有图片,就用第一张图片做为缩略图
  • 如果文章内没有图片,则用默认的图片

其实就是用 WordPress 提供的自定义栏目功能来解决。

1
$postImageUrl  = get_post_meta ( $post -&gt ;ID ,  'thumbnail' ,  true ) ;  //设置自定义栏目名为“thumbnail”

1.在functions.php文件中添加下面代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//缩略图获取
add_theme_support (  'post-thumbnails'  ) ;
set_post_thumbnail_size (  262 ,  114  , true  ) ; //设置缩略图的尺寸
function dm_the_thumbnail ( )  {
global  $post ;
$postImageUrl  = get_post_meta ( $post -&gt ;ID ,  'thumbnail' ,  true ) ;  //设置自定义栏目名为“thumbnail”
// 判断该文章是否设置有缩略图,如果有则直接显示
if  ( has_post_thumbnail ( )  )  {
echo  '' ;
the_post_thumbnail ( ) ;
echo  ''
;
}  elseif  ( $postImageUrl )  {
echo  '. $postImageUrl . '" />' ;
}  else  {  //如果文章没有设置缩略图,则查找文章内是否包含图片
$content  =  $post -&gt ;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  &gt ;  0 ) {  // 如果文章内包含有图片,就用第一张图片做为缩略图
echo  '. $strResult [ 1 ] [ 0 ] . '" />' ;
} else  {  // 如果文章内没有图片,则用默认的图片
echo  '.get_bloginfo ( 'template_url' ) . '/images/thumbnail.jpg" />' ;
}
}
}

2.折腾完这些步骤以后,需要后台界面右上角点击显示选项,勾选自定义栏目。

3.获取timthumb.php文件,放在主题根目录下
然后调整样式之类的,关于代码中的结构和类名可以修改为适合自己所使用的主题。

你可能感兴趣的:(IT行业)