对于1核1G1M的主机来说,图片的载入速度一直是个心病,就算使用了一些cdn,图片的载入依旧很慢。webp作为谷歌推出的图片格式,现在在微信上用的最多,毕竟不是图片站,那图片质量可以稍微降低。
输出webp的图片网上有两种方式实现,一种是本地处理上传图片转成webp,但内存占用比较大,而且因为部分浏览器不支持,所以jpg依然需要保留,反而增加了存储空间,第二种就是chrafz今天要说的利用七牛云或者又拍云来实现。
首推七牛云毕竟有免费流量获取方便,又拍云还需要加入又拍云联盟。
下面说方法:
1、让图片经过七牛云/又拍云的cdn
方法很多,你可以整站都用他们的cdn也可以单独附件目录使用他们的cdn。
2、根据HTTP 头中的accept 是否包含image/webp
来判断浏览器是否支持webp 格式。
实现方法
下面的代码直接加到functions.php
中即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function fa_converse_webp($matches) { return $matches[1] . $matches['2'] . '!/format/webp'; // 七牛!/format/webp替换为下面的字段 //?imageView2/0/format/webp } function fa_converse_webp_filter($content){ global $post; $content = preg_replace_callback("/(<img[^>]*src *= *[\"']?)([^\"']*)/i", 'fa_converse_webp' , $content); return $content; } function fa_is_support_webp(){ return strstr($_SERVER['HTTP_ACCEPT'],'image/webp'); } if ( fa_is_support_webp() ) add_filter('the_content','fa_converse_webp_filter'); |
默认代码支持的是又拍云,如果你使用的是七牛则将!/format/webp
替换为?imageView2/0/format/webp
。
3、检查效果,右击图片选择检查,看代码应该可以看到已经不是原来的图片格式而是处理过的webp格式,可以另存为测试,提示扩展名是webp
评论1