【问题标题】:oEmbed Featured Image (Large Thumbnail)o嵌入特色图片(大缩略图)
【发布时间】:2017-03-21 08:10:58
【问题描述】:

我找到了一个名为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 );
    }
}

【问题讨论】:

    标签: php wordpress youtube oembed


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在此链接中有说明如何更改 wp 的预设。 Featured Images & Post Thumbnails 我想你会发现有趣的,可能你不需要使用插件。 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)
      

      设置特色图片输出尺寸#设置特色图片输出尺寸 在当前 Theme 的 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() 或相关函数时,默认使用“缩略图后”图像大小,但可以根据需要指定不同的大小。

      我认为您会发现有趣的其他链接是:Image Size and Quality 但它更通用。

      视频以某种方式工作。当然取决于 youtube 中视频的质量,您可以决定要显示的大小。如果您不使用其他媒体播放器,您将使用默认的 youtube 播放器,您可以使用 API 做您想做的事。

      希望对你有所帮助。

      【讨论】:

      • 我觉得你不能用这个插件。并尝试使用缓存 Wordpress 的默认设置。这段代码是针对那个的,不是针对插件的。
      猜你喜欢
      • 1970-01-01
      • 2014-09-28
      • 2011-03-11
      • 2012-04-02
      • 2016-11-21
      • 2015-02-02
      • 2017-04-25
      • 2013-07-19
      • 2019-03-22
      相关资源
      最近更新 更多