大理高端网站建设|网站托管|极速建站|WordPress主题设计开发

WordPress获取优酷视频缩略图

2016-07-10 1381次

Wordpress获取优酷视频缩略图很多网站的视频都是来自在线视频网站,这样即节省网站空间也带来更高的访问速度,优酷视频是使用较多的。在添加视频文章时我们都想直接获取视频中的缩略图,而不是再手动添加。

获取优酷视频缩略图需要在优酷视频云(http://cloud.youku.com)中创建网站应用来得到client id,优酷视频云中提供的播放器代码使用也很方便,可以更好的管理视频。

完整的优酷视频缩略图代码

  1. //获取优酷视频缩略图
  2. function getSslPage($url) {
  3.     $ch = curl_init();
  4.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  5.     curl_setopt($ch, CURLOPT_HEADER, false);
  6.     curl_setopt($ch, CURLOPT_URL, $url);
  7.     curl_setopt($ch, CURLOPT_REFERER, $url);
  8.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  9.     $result = curl_exec($ch);
  10.     curl_close($ch);
  11.     return $result;
  12. }
  13. //该函数获取优酷视频缩略图
  14. function get_youku_video_thumb(){
  15.     global $post;
  16.     //检查该文章是否已经存储过优酷缩略图地址
  17.     if(get_post_meta($post->ID, '_youku_thumb', true )){
  18.         //已存储,就直接调用
  19.         $video_thumb = get_post_meta($post->ID, '_youku_thumb', true );
  20.         //如果没有存储,我们就需要通过优酷API获取
  21.     }else{
  22.         //开发者的client_id,每个ID都有调用次数限制,所以这里可以申请多个使用
  23.         //下面一行的2个 client_id 是无效的,请自己申请后,填入
  24.         $client_ids = array('50eb119b100ec6ea','26ea6e7a06b397be');
  25.         //从所填入的 client_id 中随机选取一个
  26.         $num = array_rand($client_ids,1);
  27.         $client_id = $client_ids[$num];
  28.         $values=get_post_custom_values( "id");//通过自定义域来得到优酷视频ID
  29.         if(get_post_meta($post->ID, "id", true)) {//这里是判断是否有ID,没有就输出默认的缩略图
  30.             //获取到视频ID后,通过API读取缩略图
  31.             $link = "https://openapi.youku.com/v2/videos/show.json?video_id=$values[0]&client_id={$client_id}";
  32.             $cexecute= getSslPage($link);
  33.             if ($cexecute) {
  34.                 //转换内容以供php读取
  35.                 $result = json_decode($cexecute,true);
  36.                 $json = $result['data'][0];
  37.                 //调用大缩略图 bigThumbnail 
  38.                 $video_thumb = $result['bigThumbnail'];
  39.                 if($video_thumb !=''){
  40.                     //将调用都的缩略图地址存储到文章字段中,以供后面调用,不需反复调用API
  41.                     update_post_meta( $post->ID, '_youku_thumb', $video_thumb );
  42.                 }
  43.             }
  44.         }else{
  45.             //文章没有插入优酷视频的话,使用一个默认图片地址
  46.             $video_thumb = 'http://salongweb.com/default.jpg';//默认缩略图地址
  47.         }
  48.     }
  49.     return $video_thumb;
  50. }

代码来源WP大学,有部分修改,优酷视频的ID是通过自定义域“id”来获取。

优酷视频缩略图调用

  1. <?php echo get_youku_video_thumb();?>

上段代码中如果已经有优酷视频缩略图,就直接调用,不再重新获取,这样可以省得PHP查询,但是如果文章的视频进行了更换,同样也不会重新获取,这时我们得删除如下代码:

  1. if(get_post_meta($post->ID, '_youku_thumb', true )){
  2.     //已存储,就直接调用
  3.     $video_thumb = get_post_meta($post->ID, '_youku_thumb', true );
  4.     //如果没有存储,我们就需要通过优酷API获取
  5. }else{
  6. //中间部分的留着
  7. }

Yewan主题演示用户列表野玩儿官网