2017-08-02 118 views
0

如何使YouTube視頻在現場工作,無需嵌入代碼?我的意思是直接代碼爲:https://www.youtube.com/watch?v=ouDmKW1FGjo。我希望用戶將直接視頻網址粘貼到VIDEO_LINK字段而不是嵌入代碼。我怎樣才能做到這一點?只有嵌入式鏈接適用於下面的代碼而不是直接鏈接。如何使直接的YouTube視頻網址工作不嵌入?

<iframe width="100%" height="550" src="<?php the_field('video_link') ?>" frameborder="0" allowfullscreen></iframe> 
+0

有有很多方法可以做到這一點。我會請你仔細閱讀:https://codex.wordpress.org/Embeds。 –

回答

1

使用下面的代碼來獲取視頻密鑰(假設URL是https://www.youtube.com/watch?v=ouDmKW1FGjo):

<?php 
    $video_url=get_field('video_link'); 

    $url = urldecode(rawurldecode($video_url)); 
    preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches); 

     // Get key of youtube by preg_match and put it in iframe 

     $videoKey= $matches[1]; 
?> 
<iframe width="100%" height="550" src="https://www.youtube.com/embed/<?php echo $videoKey ;?>" frameborder="0" allowfullscreen></iframe> 
1

您可以使用此功能,Youtube的URL轉換爲嵌入式代碼:

function get_youtube_embed($youtube_url, $width=560, $height=315) 
{ 
    $height = (int)$height; 
    $width = (int)$width; 
    $embed_html = ''; 
      $parts = parse_url($youtube_url); 
      if(isset($parts['query'])) { 
        parse_str($parts['query'], $query); 
        if(isset($query['v'])) { 
          $embed_html = '<iframe width="'.$width.'" height="'.$height.'" src="https://www.youtube.com/embed/'.$query['v'].'" frameborder="0" allowfullscreen></iframe>'; 
        } 
      } 
      return $embed_html; 
}