Intereting Posts
Как получить последнее сообщение Id пользовательского типа сообщения в wordpress Populate Select Option 2 После выбора опции 1 WP-e-commerce (gothopped) Файлы на иврите – где я могу их получить? если родительская страница оператора для дочерних страниц Создание меню WordPress – не может понять конфигурацию Обновление файлов медиабиблиотеки после загрузки через FTP Включить почтовый формат в постоянную ссылку Список боковых панелей на странице Как получить заполнение строки в почтовом фиде? Как найти версию WordPress у меня из исходного кода? Отображение изображения выбранного шаблона в админе, чтобы помочь пользователю при использовании сложных шаблонов Как добавить пользовательскую длину выдержки в двадцать одиннадцать детских тем? добавьте магазин woocommerce для каждого пользователя buddypress отключить WP автоматически вставленные разрывы строк после изображения Ошибка при использовании Audio plugin

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

У меня есть метабокс, который позволяет мне добавлять видео с 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 );