首頁  >  文章  >  CMS教程  >  如何讓 WordPress 支援 WebP格式圖片

如何讓 WordPress 支援 WebP格式圖片

藏色散人
藏色散人轉載
2020-11-05 16:16:413018瀏覽

以下由WordPress教學欄位來介紹讓 WordPress 支援 WebP格式圖片的方法,希望對需要的朋友有幫助!

如何讓 WordPress 支援 WebP格式圖片

WordPress 預設不支援WebP格式圖片上傳,將下面程式碼加入目前主題函數範本functions.php中,即可解決上傳問題。

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

雖然已經可以上傳WebP格式的圖片了,但在媒體清單中看不到縮圖,這是因為WordPress在用wp_generate_attachment_metadata()函數產生圖片資料時,使用了file_is_displayable_image()函數判斷文件是否為圖片,判斷WebP圖片的結果為否,因此中斷了儲存圖片資料的操作。

該函數位於:wp-admin/includes/image.php展開

解決方法是在主題的functions.php裡加入以下程式碼:

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 );
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圖片,雖然目前七牛、又拍雲、阿里雲oss、騰訊雲cos等都支援WebP,不過發現蘋果設備不支援webp圖片,包括IOS版的微信,這也可能是WordPress一直不支持webp圖片的原因吧。

以上是如何讓 WordPress 支援 WebP格式圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:zmingcx.com。如有侵權,請聯絡admin@php.cn刪除