我已使用以下代码更新了wordpress,以允许上传webp
function webp_upload_mimes( $existing_mimes ) {
$existing_mimes['webp'] = 'image/webp';
return $existing_mimes;
}
add_filter( 'mime_types', 'webp_upload_mimes' );
效果很好,但是webp图像未在媒体选择器中显示预览,如图所示
无论如何,我是否可以强制wordpress渲染webp预览?到我的网站完成时,它可能会包含数百个webp图像,而在选择时看不到它们可能会非常痛苦!
答案 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');