WordPress

Микроразметка видео на WordPress

Покопавшись в гугле, я не смог найти подробного туториала под нужды микроразметки вставляемого видео из ютуба на сайт. Да такого, чтоб раз поставил и забыл. Пришлось самому разбираться. Значится, на чистоту кода я не претендую, главное – работает. Мой пример делает следующие вещи:
  1. Берёт id видео из адресной строки самого видео.
  2. Вставляет, собственно, само видео.
  3. Прописывает мета данные видеоролика, получаемые на основе api ютуба.
От юзверя нужно лишь вставить ссылку в произвольное поле и всё. Вот сам код:
<?php
//получили ссылку видео из произвольного поля
$videourl = get_post_meta($post->ID, 'video_url', true); 
if(videourl){
//вытащили ID видео
$IDvideo = substr(strstr($videourl, '='), 1, strlen($videourl));
// Полезли в API Youtube, чтобы получить длительность видео
$getJSON = "https://www.googleapis.com/youtube/v3/videos?id=".$IDvideo."&part=contentDetails&key=ВАШ_КЛЮЧ_API"; 
            $data = file_get_contents($getJSON);
            $time = json_decode($data, true);
      $timevideo = $time['items'][0]['contentDetails']['duration'];
// Полезли в API Youtube, чтобы получить дату постинга видео
$getJSONdate = "https://www.googleapis.com/youtube/v3/videos?id=".$IDvideo."&part=snippet&key=ВАШ_КЛЮЧ_API";
            $datapost = file_get_contents($getJSONdate);
            $timepost = json_decode($datapost, true);
      $imgWidth = $timepost['items'][0]['snippet']['thumbnails']['maxres']['width'];
      $imgHeight = $timepost['items'][0]['snippet']['thumbnails']['maxres']['height'];
      $datepost = $timepost['items'][0]['snippet']['publishedAt'];
      //колдуем с форматом даты
      $timev = strtotime($datepost); 
      $yearv  = date( 'Y',$timev ); # Получаем год
      $monthv = date( 'm',$timev ); # Получаем месяца
      $dayv   = date( 'd',$timev ); # С помощью функции date() получаем число дня
      $datev = "$yearv-$monthv-$dayv"; # Выходная дата в формате Y-m-d

  ?>
<div  itemscope itemtype="http://schema.org/VideoObject">
<div style="display:none;">
<meta itemprop="description" content="<?php echo get_the_excerpt(); ?>">
 <meta itemprop="duration" content="<?php echo $timevideo; ?>"/>
 <link itemprop="url" href="<?php echo $videourl; ?>"/>
 <link itemprop="thumbnailUrl" href="https://img.youtube.com/vi/<?php echo $IDvideo; ?>/maxresdefault.jpg"/>
 <meta itemprop="name" content="<?php the_title(); ?>"/>
 <meta itemprop="uploadDate" content="<?php echo $datev; ?>"/>
 <meta itemprop="isFamilyFriendly" content="true"/>
 <span itemprop="thumbnail" itemscope itemtype="http://schema.org/ImageObject" >
<img itemprop="contentUrl" src="https://img.youtube.com/vi/<?php echo $IDvideo; ?>/maxresdefault.jpg" />
<meta itemprop="width" content="<?php echo $imgWidth; ?>"/>
<meta itemprop="height" content="<?php echo $imgHeight; ?>"/>
</span>
</div>
<iframe id="videoevent" width="auto" height="auto" src="https://www.youtube.com/embed/<?php echo $IDvideo; ?>" frameborder="0" allowfullscreen></iframe><div class="clear"></div>
</div>
<?php } // end videourl ?>
Для начала нам нужно добавить новое произвольное поле для записей, в которое будут вводить url видоса из ютуба. Из этой строки скрипт вытащит id. После этого идём сюда и получаем ключ YouTube Data API. Вставляем его в местах, где написано “ВАШ_КЛЮЧ_API”. Всё. Впендюриваем в вёрстку шаблона код выше и радуемся вот такой вот микроразметочке: Микроразметка видео на WordPress Можно вставить больше полей, но мне было лень. Кому надо, допилят код под свои нужды.

Оставить комментарий