让 WordPress 媒体库原生支持 WebP 图片格式
在优化网站加载速度时,很多站长会选择 WebP 格式。相比传统的 PNG,WebP 的无损压缩体积能降低约 45%,在保证画质的同时显著提升页面响应速度。而且,目前主流浏览器早已全面兼容该格式。
然而,在实际使用 WordPress 时,你可能会发现媒体库默认并不接纳 WebP 文件。当你尝试上传时,系统往往会提示文件类型不支持,导致你不得不通过 FTP 或第三方插件来处理,流程十分繁琐。
其实无需安装沉重的插件,通过在主题的 functions.php 文件中添加几行代码,即可让 WordPress 媒体库原生支持 WebP 的上传与预览。
第一步:允许 WebP 文件上传
首先,我们需要通过 mime_types 过滤器将 WebP 添加到允许上传的 MIME 类型列表中。请将以下代码添加到主题的 functions.php 中:
function webp_filter_mime_types($array) {$array['webp'] = 'image/webp'; return $array; } add_filter('mime_types', 'webp_filter_mime_types', 10, 1);
第二步:开启媒体库预览功能
即便文件上传成功,WordPress 的媒体库有时仍无法正确显示 WebP 的缩略图或预览图。为了解决这个问题,我们需要通过 file_is_displayable_image 过滤器来告诉系统 WebP 是可显示的图像格式:
function webp_file_is_displayable_image($result, $path) {$info = @getimagesize( $path); if($info['mime'] == 'image/webp') {$result = true;} return $result; } add_filter('file_is_displayable_image', 'webp_file_is_displayable_image', 10, 2);
注意事项
- 备份文件:在修改
functions.php之前,请务必备份该文件,以免代码输入错误导致网站出现 500 错误。 - 子主题建议:建议将代码添加在 子主题 的
functions.php中,这样在升级主主题时,相关设置不会被覆盖。 - 服务器环境:该方案依赖于服务器端安装了 GD 库或 ImageMagick 扩展,绝大多数现代虚拟主机和 VPS 均已默认安装。
正文完
