将缩略图裁剪到前端帖子上的特定尺寸

时间:2013-02-11 作者:Pollux Khafra

可能不是最好的标题描述,但我们开始吧。我自定义的帖子类型之一是youtube视频,我从youtube上取拇指,将其上传为帖子的缩略图。现在,从youtube下载图像并使用media_handle_sideload() 要将其作为帖子的附件上传并设置缩略图大小,可以裁剪为,但youtube视频图像的顶部和底部都有多余的黑条。所以我需要一种方法来裁剪它们。

所以我有一个自定义缩略图大小,将所有拇指裁剪到224px的宽度,称为“后缩略图”。

我从前端的柱子上得到拇指,然后像这样处理。

$vid_url = $_POST[\'video_url\'];
$video_id = getVideoId($vid_url);
if ($video_id) {
   $video_response = wp_remote_retrieve_response_code(wp_remote_request($vid_url));
   if ($video_response == 200) {
      $video_url = $vid_url;
      $video_image_url = \'http://img.youtube.com/vi/\'.$video_id.\'/hqdefault.jpg\';
      $tmp = download_url($video_image_url);
      $file_array = array(
                    \'name\' => basename( $video_image_url ),
                    \'tmp_name\' => $tmp
                  );
   }
}
$pid = wp_insert_post($new_post);
$vid_thumb = media_handle_sideload( $file_array, $pid );
update_post_meta($pid,\'video_thumb\',$vid_thumb);
现在这给了我一个224px/168px的拇指,所以现在我需要做的是将拇指裁剪为224px/120px,从顶部和底部去掉24px。有什么想法吗?

1 个回复
SO网友:Abhik

media_handle_sideload 以与正常上载相同的方式处理上载。这意味着,当您上载远程图像(在您的情况下为YouTube缩略图)时,它将自动创建使用add_image_size.

因此,您需要做的是创建所需大小的缩略图,并在循环中调用它。

function my_setup() {
    //Support Thumbnails
    add_theme_support( \'post-thumbnails\' );

    //Add Thumbnail Sizes
    add_image_size( \'youtube\', 224, 120, true );
}
add_action( \'after_setup_theme\', \'my_setup\' );
然后在你的循环中;

if ( \'\' != get_the_post_thumbnail() ) {
    the_post_thumbnail( \'youtube\' );
}

结束