Intereting Posts
Загруженные плагины получают обновления, если они поступают из каталога wordpress plugin? Когда вы удаляете сообщение, также комментарии связанные с мусором Запуск сценариев и стилей Получить изображения, прикрепленные к определенной странице Как добавить пользовательские ссылки на страницу типа архива в навигационное меню? Не удается получить запрос var 'post_type' для работы Добавление ширины и высоты в wp_get_attachment_image_src Можете ли вы иметь более одного nonce на странице? Отображать метаданные пользователя из текстового поля в виде форматированного текста Могу ли я легко переключать темы на полностью построенном веб-сайте? Установка wp-cli Условие короткого кода аудио или плейлиста в зависимости от количества файлов на странице вложения Как реализовать пользовательские поля без использования каких-либо плагинов? Как принудительно выполнить запрос? Как найти, на какой индексной странице находится сообщение?

Настройка отображаемого изображения сообщения из встроенного видео YouTube

Если я создаю сообщение, в котором есть встроенное видео YouTube (так что все, что я делаю, это вставить URL-адрес YouTube в сообщение и позволить WordPress автоматически вставлять его для меня), есть ли способ получить уменьшенное изображение видео, установленного как изображение, размещенное в сообщении?

Solutions Collecting From Web of "Настройка отображаемого изображения сообщения из встроенного видео YouTube"

Не изначально. Вам нужно написать код, чтобы это произошло – есть хорошая функция pastebin, которая предоставляет необходимый код для этого.

Редактировать (12/19/2011):

Да вот как вы можете сделать это программно. Добавьте в свой файл functions.php следующие две функции, и вам должно быть хорошо идти. Код был прокомментирован, чтобы объяснить, что происходит, но вот высокий уровень того, чего ожидать:

Вы должны…

  • Создать запись
  • В содержании укажите URL-адрес YouTube.

Код будет …

  • Разберите URL из содержимого
  • Выберете первый URL-адрес, который он найдет, и предположим, что это URL-адрес YouTube
  • Возьмите миниатюру с удаленного сервера и загрузите ее
  • Установите его как миниатюру текущего сообщения

Обратите внимание: если вы добавили несколько URL-адресов в свой пост, вам нужно будет изменить код, чтобы правильно найти URL-адрес YouTube. Это можно сделать, итерируя через сборку $attachments и вынюхивая, какой URL-адрес выглядит как URL-адрес YouTube.

 function set_youtube_as_featured_image($post_id) { // only want to do this if the post has no thumbnail if(!has_post_thumbnail($post_id)) { // find the youtube url $post_array = get_post($post_id, ARRAY_A); $content = $post_array['post_content']; $youtube_id = get_youtube_id($content); // build the thumbnail string $youtube_thumb_url = 'http://img.youtube.com/vi/' . $youtube_id . '/0.jpg'; // next, download the URL of the youtube image media_sideload_image($youtube_thumb_url, $post_id, 'Sample youtube image.'); // find the most recent attachment for the given post $attachments = get_posts( array( 'post_type' => 'attachment', 'numberposts' => 1, 'order' => 'ASC', 'post_parent' => $post_id ) ); $attachment = $attachments[0]; // and set it as the post thumbnail set_post_thumbnail( $post_id, $attachment->ID ); } // end if } // set_youtube_as_featured_image add_action('save_post', 'set_youtube_as_featured_image'); function get_youtube_id($content) { // find the youtube-based URL in the post $urls = array(); preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $content, $urls); $youtube_url = $urls[0][0]; // next, locate the youtube video id $youtube_id = ''; if(strlen(trim($youtube_url)) > 0) { parse_str( parse_url( $youtube_url, PHP_URL_QUERY ) ); $youtube_id = $v; } // end if return $youtube_id; } // end get_youtube_id 

Следует отметить, что это предполагает, что ваш пост не имеет миниатюры сообщений и не будет срабатывать, когда будет установлен миниатюра сообщения.

Во-вторых, если вы удалите миниатюру сообщения, а затем прикрепите изображение к этому сообщению с помощью загрузчика мультимедиа, будет использовано самое последнее изображение.