WordPress 支持 WebP格式图片上传方法

WordPress 支持 WebP

在浏览器支持方面,现在主流的浏览器也都支持WebP格式,况且像微信公众号这样的大平台早已开始使用WebP图片,因此没有理由不将自己的博客(例如:米扑博客)的插图换成WebP了。

默认情况下,WordPress不支持上传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 );