以下由WordPress教學欄位來介紹讓 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中文網其他相關文章!