Я нашел плагин под названием oEmbed Избранные изображения это делает абсолютно все, что я хочу, кроме вывода самого большого размера.
Стандартный размер вывода YouTube для плагина — 480×360. Мне нужно иметь возможность использовать полный размер разрешения как минимум для YouTube / Vimeo.
Я подумал, что могу редактировать функцию, начиная со строки 68 в плагине.
Вот что я придумал:
public function oembed_dataparse( $return, $data, $url )
{
if ($yt = $data->provider_name == 'YouTube')
{
if(preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $data->thumbnail_url, $youtube_id))
$ytvideo_id = $youtube_id;
$max = get_headers($data->thumbnail_url);
if (substr($max[0], 9, 3) !== '404')
{
$data->thumbnail_url = 'http://img.youtube.com/vi/$ytvideo_id/maxresdefault.jpg';
}
}
if ($vm = $data->provider_name == 'Vimeo')
{
if (preg_match("/https?:\/\/(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?)/", $data->thumbnail_url, $vimeo_id))
$vmvideo_id = $vimeo_id[3];
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$vmvideo_id.php"));
$data->thumbnail_url = $hash[0]['thumbnail_large'];
}
if ( ! empty( $data->thumbnail_url ) && ! $this->_thumb_id ) {
//if ( in_array( @ $data->type, array( 'video' ) ) ) // Only set for video embeds
$this->set_thumb_by_url( $data->thumbnail_url, @ $data->title );
}
}
Что вам нужно сделать, это на самом деле изменить свой YouTube, если заявление, чтобы он смотрел на $url
не $data->thumbnail_url
, Это приведет к вашему preg_match()
соответствовать правильно, и он вернет правильный $yt_videoid
для вас, чтобы использовать.
В этой ссылке есть объяснение, как вы можете изменить пресет wp.
Избранные изображения & Миниатюры сообщений
Я думаю, вы могли бы найти интересным, вероятно, вам не нужно использовать плагин. the_post_thumbnail( 'full' ); // Original image resolution (unmodified)
В ссылке написано:
Размеры изображений WordPress по умолчанию: «Миниатюра», «Средний», «Большой» и «Полноразмерный» (исходный размер загруженного вами изображения). Эти размеры изображений можно настроить на панели «Администрирование» WordPress в разделе «Настройки»> «Мультимедиа». Вы также можете определить свой собственный размер изображения, передав массив с размерами вашего изображения:
he_post_thumbnail(); // Without parameter ->; Thumbnail
the_post_thumbnail( 'thumbnail' ); // Thumbnail (default 150px x 150px max)
the_post_thumbnail( 'medium' ); // Medium resolution (default 300px x 300px max)
the_post_thumbnail( 'large' ); // Large resolution (default 640px x 640px max)
the_post_thumbnail( 'full' ); // Original image resolution (unmodified)
the_post_thumbnail( array( 100, 100 ) ); // Other resolutions (height, width)
Установите размер выходного изображения # Установите размер выходного изображения
Используется в файле functions.php текущей темы.
Вы можете использовать set_post_thumbnail_size (), чтобы установить размер избранного изображения по умолчанию, пропорционально изменив размер изображения (то есть не искажая его):
set_post_thumbnail_size( 50, 50 ); // 50 pixels wide by 50 pixels tall, resize mode
Установите размер рекомендуемого изображения по умолчанию, обрезая изображение (либо сбоку, либо сверху и снизу):
set_post_thumbnail_size( 50, 50, true ); // 50 pixels wide by 50 pixels tall, crop mode
В этой ссылке вы можете увидеть больше кода: https://developer.wordpress.org/reference/functions/the_post_thumbnail/
При использовании the_post_thumbnail () или связанных функций размер изображения «post-thumbnail» используется по умолчанию, хотя при необходимости можно указать другой размер.
Другая ссылка, я думаю, вы можете найти интересное это: Размер и качество изображения
Но это более общее.
Видео работает в некотором роде. Конечно, зависит от качества видео в YouTube, и вы можете решить, какой размер вы хотите показать. Если вы не используете другой медиаплеер, вы будете использовать проигрыватель YouTube по умолчанию, и вы сможете использовать API для того, что вы хотите.
Я надеюсь, что я был полезным.