刚刚在写一篇用VUE实现视差滚动方法的文章时,需要上传WEBP格式的图片,没想到竟然不支持,发扬有事问度娘的传统找到了解决办法:
在已使用的主题functions.php里添加如下代码:
function mimvp_filter_mime_types( $array ) {
$array['webp'] = 'image/webp';
return $array;
}
add_filter( 'mime_types', 'mimvp_filter_mime_types', 10, 1 );
虽然现在已经可以上传WebP格式的图片了,但在媒体列表中看不到缩略图,这是因为WordPress在用wp_generate_attachment_metadata()函数生成图片数据时,使用了file_is_displayable_image()函数判断文件是否为图片,判断WebP图片的结果为否,因此中断了保存图片数据的操作。
解决办法依然是在已启用主题的functions.php里添加以下代码:
function mimvp_file_is_displayable_image($result, $path)
{
$info = @getimagesize($path);
if ($info['mime'] === 'image/webp') {
$result = true;
}
return $result;
}
add_filter( 'file_is_displayable_image', 'mimvp_file_is_displayable_image', 10, 2 );
在这之后上传WebP格式图片,显示WebP格式图片,都不会再有问题了