WordPress的WebP图像预览

时间:2019-01-30 14:31:46

标签: php wordpress

我已使用以下代码更新了wordpress,以允许上传webp

function webp_upload_mimes( $existing_mimes ) {
    $existing_mimes['webp'] = 'image/webp';
    return $existing_mimes;
}
add_filter( 'mime_types', 'webp_upload_mimes' );

效果很好,但是webp图像未在媒体选择器中显示预览,如图所示

enter image description here

无论如何,我是否可以强制wordpress渲染webp预览?到我的网站完成时,它可能会包含数百个webp图像,而在选择时看不到它们可能会非常痛苦!

3 个答案:

答案 0 :(得分:3)

我找到了一种在媒体管理器上显示缩略图的解决方案。您必须将以下代码添加到活动主题的functions.php中:

//enable upload for webp image files.
function webp_upload_mimes($existing_mimes) {
    $existing_mimes['webp'] = 'image/webp';
    return $existing_mimes;
}
add_filter('mime_types', 'webp_upload_mimes');

//enable preview / thumbnail for webp image files.
function webp_is_displayable($result, $path) {
    if ($result === false) {
        $displayable_image_types = array( IMAGETYPE_WEBP );
        $info = @getimagesize( $path );

        if (empty($info)) {
            $result = false;
        } elseif (!in_array($info[2], $displayable_image_types)) {
            $result = false;
        } else {
            $result = true;
        }
    }

    return $result;
}
add_filter('file_is_displayable_image', 'webp_is_displayable', 10, 2);

webp_is_displayable函数正在使用file_is_displayable_image挂钩并检查文件(在$path上)是否为webp图像文件。要检查webp图片文件,该功能使用了常量IMAGETYPE_WEBP

答案 1 :(得分:1)

Sebastian Brosch提出的解决方案仍在起作用。 但是正如S_R所评论的那样,旧的Webp图像将无法正常工作。 为此,您可以使用wordpress插件“强制重新生成缩略图”来重新加载旧图像并创建预览。

答案 2 :(得分:-1)

还有一件事,如果您希望WordPress允许您将webp上传到媒体/库,则可以使用以下代码:

//** Enable upload for webp image files.
function webp_upload_mimes($existing_mimes) {
    $existing_mimes['webp'] = 'image/webp';
    return $existing_mimes;
}
add_filter('mime_types', 'webp_upload_mimes');