Intereting Posts
Существует ли шаблонный тег, который я могу использовать для ссылки на страницу архива, соответствующую месяцу публикации публикации? Localhost сохраняет перенаправление на живой домен Выберите первый элемент дочерней / подстраницы на страницах списка страниц. Удаление опции комментария Отображать персонализированные сообщения для автора, а не сообщения по умолчанию Где мои ссылки js и css в заголовке? Как отобразить полевые данные профиля BuddyPress в многопользовательских блогах Как загрузить файл javascript на главной странице WordPress в порядке? Изменить положение подменю пользовательской таксономии WordPress 3 – как хранятся пароли и как они сравниваются с ними? Проверка отображения определенного архива даты Когда использовать действия и когда использовать фильтры Автоматические выдержки Как создать дочернюю систему, как отключить шаблоны родителей? Редактировать пользовательскую таксономию

Как создать признак изображения из видео, внедренного в метабокс

У меня есть метабокс, который позволяет мне добавлять видео с Youtube и Vimeo на сообщения с форматом видеопотока. Теперь я ищу автоматическое создание эскизов для этих сообщений с форматом видеопотока. Это мой маленький бит кода, который позволяет мне вставлять видео:

function my_theme_show_post_video_metabox( $post ) { wp_nonce_field( 'my_theme_post_video_metabox', '_my_theme_post_video_metabox' ); $video = get_post_meta( $post->ID, '_my_theme_post_video', true ); echo '<h4 style="margin: 10px 0 0 0;">URL - YouTube or Vimeo</h4>'; echo '<input type="text" id="_my_theme_post_video" name="_my_theme_post_video" value="' . $video . '" style="width: 100%;" />'; } 

Как я могу теперь создать эскиз видео, встроенного в этот обмен для использования в качестве опубликованного изображения?

Solutions Collecting From Web of "Как создать признак изображения из видео, внедренного в метабокс"

Вам нужно сделать несколько шагов.

  1. Получить идентификатор из приложения MetaBox
  2. Вытяните список доступных размеров на основе идентификатора
  3. Импортируйте изображение в свою библиотеку, если он еще не существует.
  4. Приложите новый файл к сообщению.

ШАГ 2 | YouTube

Создайте массив размеров с YouTube, чтобы использовать его позже:

 function getYoutTubeImagesFromID($yt_id, $prefix = 'https:') { $yt_url = 'img.youtube.com'; // can be 'i3.ytimg.com' $sizes = array(0, 1, 2, 3, "default", "hqdefault", "mqdefault", "sddefault", "maxresdefault"); $result = array(); foreach($sizes as $size) { $result [ $size ] = "{$prefix}//img.youtube.com/vi/{$yt_id}/{$size}.jpg"; } return array( 'id' => $yt_id, 'link' => "{$prefix}//youtu.be/{$yt_id}", 'sizes' => $result, ); } 

Чтобы проверить это, прокрутите список IDS.

 $yt_videos = array('cV5yxrZpuXg', 'LtBTHqi8Gmw', 'VEAY-nRlP5c', 'IWeasYydL8Y', 'fCVXpcR9KDY'); foreach($yt_videos as $yt_id) { $ytImages = getYoutTubeImagesFromID($yt_id); $src = $ytImages[ 'sizes' ][ 'hqdefault' ]; $link = $ytImages[ 'link' ]; echo "<a href=\"{$link}\" target=\"_blank\" ><img src=\"{$src}\" ></a>"; print_r($ytImages); } 

Каждый из них должен указать информацию о размере, которую вы можете использовать для своего импорта.

 Array ( [id] => cV5yxrZpuXg [link] => https://youtu.be/cV5yxrZpuXg [sizes] => Array ( [0] => http://img.wordpressask.com/metabox/0.jpg [1] => http://img.wordpressask.com/metabox/1.jpg [2] => http://img.wordpressask.com/metabox/2.jpg [3] => http://img.wordpressask.com/metabox/3.jpg [default] => http://img.wordpressask.com/metabox/default.jpg [hqdefault] => http://img.wordpressask.com/metabox/hqdefault.jpg [mqdefault] => http://img.wordpressask.com/metabox/mqdefault.jpg [sddefault] => http://img.wordpressask.com/metabox/sddefault.jpg [maxresdefault] => http://img.wordpressask.com/metabox/maxresdefault.jpg ) ) 

ШАГ 2 | Vimeo

Соберите видеоинформацию Vimeo

 function getVimeoImagesFromID($vimeo_id, $prefix = 'https:') { $vimeo_url = "{$prefix}//vimeo.com/api/v2/video/{$vimeo_id}.php"; if( ! $vimeo_hash = @file_get_contents($vimeo_url)) { return false; } $result = unserialize($vimeo_hash); return ( count($result) === 1 ) ? array_shift($result) : $result; } // your vimeo id $vimeo_id = 71472926; // get available information for video if($vimeo_hash = getVimeoImagesFromID($vimeo_id)) { // grab the largest image possible $vimeo_src = $vimeo_hash [ 'thumbnail_large' ]; echo $vimeo_src; // http://img.wordpressask.com/metabox/445043557_640.jpg } 

ШАГ 3 | Изображение пользователя Sideload

media_sideload_image изображение от YT до вашего раскола. Не забудьте захватить thumbnail_id из полученного src .

 // your youtube id $yt_id = 'cSXlOeKusWs'; // size information for id $ytImages = getYoutTubeImagesFromID($yt_id); // max res image $url = $ytImages[ 'sizes' ][ 'maxresdefault' ]; // sideload image $src = media_sideload_image(esc_url($url), NULL, '', 'src'); // convert src to id $thumbnail_id = attachment_url_to_postid($src); 

ШАГ 4 | Прикрепить миниатюру сообщения

set_post_thumbnail на основе нового thumbnail_id .

 set_post_thumbnail( $post, $thumbnail_id );