WordPress支持WebP格式图片上传方法
WordPress支持WebP格式图片上传方法 默认情况下,WordPress不支持上传WebP格式的图片,在…
WordPress支持WebP格式图片上传方法
默认情况下,WordPress不支持上传WebP格式的图片,在主题的functions.php里添加以下代码即可:
1
2
3
4
5
|
function bzg_filter_mime_types( $array ) {
$array[‘webp’] = ‘image/webp’;
return $array;
}
add_filter( ‘mime_types’, ‘bzg_filter_mime_types’, 10, 1 );
|
虽然现在已经可以上传WebP格式的图片了,但在媒体列表中看不到缩略图,这是因为WordPress在用wp_generate_attachment_metadata()函数生成图片数据时,使用了file_is_displayable_image()函数判断文件是否为图片,判断WebP图片的结果为否,因此中断了保存图片数据的操作。
解决办法是在主题的functions.php里添加以下代码:
1
2
3
4
5
6
7
8
|
function bzg_file_is_displayable_image($result, $path) {
$info = @getimagesize( $path );
if($info[‘mime’] == ‘image/webp’) {
$result = true;
}
return $result;
}
add_filter( ‘file_is_displayable_image’, ‘bzg_file_is_displayable_image’, 10, 2 );
|
在这之后上传WebP格式图片不会再有问题了,但之前已经上传的其他格式的图片要替换为WebP格式还是比较麻烦,分享一下我的解决过程:
- 使用“Ubuntu下批量转换WebP格式图形工具”将wp-content/uploads目录中的图片全部转换为WebP格式,如果你是Windows系统,可以搜索一下相应的转换工具;
- 编写了一小段脚本读取数据库中所有的图片,使用wp_update_attachment_metadata()函数更新这些图片的数据;
- Gedit编辑器正则表达式替换wp_postmeta表中meta_key为_wp_attached_file的图片名称,可以看到这个表中meta_key为_wp_attachment_metadata对应的数据已经在第2步中替换了;
- Gedit编辑器正则表达式替换文章数据表中插入的图片链接;
由于我在处理时没有保存相应的脚本和正则表达式,所以你只有自己动手丰衣足食了。
文章来源:
https://www.beizigen.com/2205.html
https://www.beizigen.com/2189.html
文章参考
https://vpura.com/2019/10/22/xuexibiji/tool/1177/
https://stackoverflow.com/questions/54442929/wordpress-webp-image-previews/54447139#54447139
https://stackoverflow.com/questions/53427169/how-to-upload-webp-image-in-wordpress
https://www.it-cooking.com/technology/web/cms/wordpress/conditionally-serving-webp-images-with-nginx/
https://mhthemes.com/support/knb/fix-blank-thumbnails-wordpress-media-library/
https://techmoon.xyz/webp-wordpress/ 插件
类别:WordPress开发、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
评论功能已经关闭!