让又拍云或七牛支持WordPress使用Webp图片格式

让又拍云或七牛支持WordPress使用Webp图片格式

WebP格式是谷歌开发的一种旨在加快图片加载速度的图片格式,体积大概为jpg格式的2/3。
但是实际使用中,一般人的图片并不是压缩过的,所以实际体积大约只有原图的三分之一甚至更少。
如果一篇文章有多张图片,这速度提升的就不是一点半点了。
但是Webp 的缺点也很明显,就是只支持Chrome 浏览器,iOS 下的Safari 甚至都不支持。

主流图片云储存都提供了输入格式的选择,webp 也包含在其中,只要你使用了此类云存储,那么都可以输出webp 格式了,我们剩下要做的就是判断何时输出Webp 格式。

简单的方法,可以根据HTTP 头中的accept 是否包含image/webp来判断浏览器是否支持webp 格式。

实现方法
在主题中的functions.php文件加入以下代码:

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

分享到 :

发表评论

登录... 后才能评论