oEmbed特色图像(大缩略图)



我发现了一个名为oEmbed Featured Image的插件,除了输出最大的尺寸外,它绝对可以做我想要的一切。

插件默认的YouTube输出大小是480x360。我需要能够使用完整的分辨率大小至少为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 );
    }
}

在这个链接中有如何更改wp预设的解释。特色图片&文章缩略图我想你会发现有趣的,也许你不需要使用插件。the_post_thumbnail( 'full' ); // Original image resolution (unmodified)

在链接中是这样写的: WordPress默认的图片大小是"缩略图","中","大"one_answers"全尺寸"(您上传的图片的原始尺寸)。这些图像大小可以在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做你想做的事情。

我希望我能帮到你。

你需要做的就是修改你的youtube if语句,使它看起来是$url,而不是$data->thumbnail_url。这将导致您的preg_match()正确匹配,并且它将返回正确的$yt_videoid供您使用。

相关内容

  • 没有找到相关文章

最新更新