下面由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圖片的原因吧。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END