如何讓 WordPress 支援 WebP格式圖片

藏色散人
發布: 2020-11-05 16:16:41
轉載
2993 人瀏覽過

以下由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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!