是否有可能将各种图像类型从远程URL转换为WebP,然后立即提供服务?

时间:2021-01-08 作者:whatifthis

我正在开发一个插件,可以从API获取图像URL,有些是PNG、JPG,还有一些是JPG,没有扩展。我一直在尝试使用download_url()media_handle_sideload() 为了添加图像,我希望可以将它们转换为WebP并通过wp_get_attachment_url(). 此部分主要基于this code here, 这不适用于有无扩展的图像。(例如,此URLhttps://s.yimg.com/ny/api/res/1.2/5kThzlhC8ohGderVoKLJrw--/YXBwaWQ9aGlnaGxhbmRlcjt3PTcwNQ--/https://media.zenfs.com/en/evening_standard_239/b4cd0950143bb1ed165aa095f73a3315)

我试过了this solution, 但这并没有解决问题。然而,我可以看到,没有扩展名的图像URL实际上是JPG。我通过检查$tmp 而不是$imageurl 在内部image_type_to_extension( exif_imagetype( $tmp ) ). 我还能够最终使所有图像URL以.tmp.

除了没有扩展名的有问题的图像外,其他图像确实存储在媒体库中。从这里可以使用相同的附件URL将其转换为WebP,然后在前端提供服务吗?我还没有找到任何关于利用imagewp() 在插件中。

我有什么遗漏吗?还是我的做法完全错了?本质上,我试图在用户发出请求后显示WebP版本的图像,而不是返回的原始格式。

提前感谢任何能够提供帮助的人。

1 个回复
SO网友:MichaelHabib

要使用原始图像URL提供webP图像而不是原始格式,可以使用。htaccess重定向规则,用于将任何请求重定向到原始映像,再重定向到webP版本。

WebP Converter for Media 在这方面做得很好,文件上传到WP媒体库。

相关推荐

媒体未显示在WordPress库中,但在Uploads文件夹中可用

我正在尝试将我的网站从共享主机迁移到数字海洋。我上传了wp的内容,我的网站已经有3年多的历史了。现在,当我在仪表板上查看媒体时。文件未显示。理想情况下,所有月份都应该可见,但正如您在图像中所看到的,只显示选定的月份数。如何让Wordpress显示所有月份和图像?