替换特色图像为七牛外链图片

in Shares with 28 comments

2016.05.20更新:对所有非主题图片进行判断,并使用WEBP格式,加速博客访问
2015.11.08更新:判断是否为Chrome,是则使用WEBP格式

Wordpress自带的特色图像功能无法使用外链图片,真是头疼。思索几番后拿出这个方法,顺便试用一下七牛的图片处理功能。
Code如下:

function IMG_WEBP(){
    function IMG_URL($html){
        global $is_chrome;
        $pattern ='/https:\/\/(dn-img-blog\.qbox\.me|heiybb\.com\/wp-content)\/([^'\']*?)\.(jpg|png|jpeg)/i';
        if($is_chrome){
            $replacement = 'https://img.heiybb.com/$2.$3?imageView2/1/q/85/format/WEBP';
        }
        else{
            $replacement = 'https://img.heiybb.com/$2.$3';
        }
        $html = preg_replace($pattern, $replacement,$html);
    return $html;
    }   
    if(!is_admin()){
        ob_start('IMG_URL');
    }
}
add_action('init', 'IMG_WEBP');
Responses
  1. zenghx

    请问报错说$pattern那行有unexpected的'\'是什么原因

    Reply
    1. @zenghx

      抱歉现在已经不再使用wordpress了无法帮你进行测试复现

      Reply
  2. 感觉七牛和又拍都不怎么好用的。

    Reply
  3. 请问现是不是不可以用了呢,还有我只想把特色图片上传到七牛可以吗?

    Reply
  4. Stone

    URL_O和URL_N分别表示个什么意思啊.大牛.

    Reply
    1. Stone
      @Stone

      能不能说得详细一点儿.我们这些豆芽不会用呀.咳...

      Reply
      1. @Stone

        URL_O是原链接,URL_N是替换的新的链接,即七牛的图片链接。

        Reply
        1. Stone
          @予而不语

          感激....赶紧试试去...

          Reply
  5. 好强大,这个code,怎么使用呢

    Reply
    1. @Luke_刘磊

      粘贴到function.php中保存即可

      Reply
      1. @予而不语

        是粘贴到 ?> 里面吗

        Reply
        1. @Luke_刘磊

          我是小白,不太看得懂实现原理

          Reply
          1. @Luke_刘磊

            仪表盘->外观->编辑->选择模板函数(functions.php)在最底部另起空行粘贴,保存就好了。

            Reply
            1. @予而不语

              恩,谢谢,我如果另起空行粘贴到底部,似乎没有用,更新之后代码直接全部显示到了网站顶部。我把代码粘到 ?> 里面没有出错,但是好像也没有效果。另外我看到你的这个代码里有你自己的域名,我需要修改吗?特色图像如何添加呢?

              Reply
              1. @Luke_刘磊

                1.可能是你粘贴错了,在底部粘贴时一定可以起作用的。2.放在?>肯定是错的,这段fucntion是独立的,不需要嵌套进其他函数。3.需要修改,URL_O和URL_N都需要根据你自己的情况修改。

                Reply
                1. @予而不语

                  恩,这一段code是要配合七牛镜像云存储来使用的吗

                  Reply
                  1. @Luke_刘磊

                    配合别的云储存也可以,只有这一段:?imageView2/1/q/85/format/WEBP 是七牛的一个图像处理功能。

                    Reply
  6. 速度快,放在自己的主机上方便点

    Reply
    1. @MinonHeart

      测试过速度没有放在七牛上快。所以最后还是选了放在七牛上。

      Reply