不要插件!轻松整合 WordPress 与七牛云存储 CDN 加速服务

9年前 (2016-01-02) 已收录 3636℃

不要插件!轻松整合 WordPress 与七牛云存储 CDN 加速服务

免费的优质服务谁不爱?凭借 10G 流量 + 10G 存储的免费套餐,七牛云存储快速获得了大批的用户。其中 WordPress 博主占了不小的比例,作为其中的一员,我来说下怎么在不需要插件的情况下让 WordPress 用上七牛云存储 CDN 加速服务。

第一步:创建七牛公开空间

首先,你得有一个七牛账号(这不是废话么~)。什么?你才知道七牛?那还不快注册成为七牛用户,立即享受每月 10G 流量 + 10G 存储的免费服务。

有了账号,你就可以新建空间,我们需要建立一个公开空间。

qiniu0
七牛云存储 - 新建空间

七牛云存储 - 新建空间

第二步:设置镜像存储

成功建立空间之后,打开该空间的【空间设置】页面。
七牛云存储 - 空间设置

在【域名设置】下,我们知道了该空间的默认域名,你也可以绑定自己的域名,这里不展开讨论。

在【镜像存储】下,点击【一键加速网站】按钮,在弹出的对话框中,【镜像源】填写你的博客地址,确定即可。

qiniu1
七牛云存储 - 加速设置

设置加速后,http://iev.cn/folder/file.jpg

七牛云存储 - 加速设置

设置加速后,http://iev.cn/folder/file.jpg 就可以通过

http://lucktang.u.qiniudn.com/folder/file.jpg 来访问了。

也就是说,我们只需将 WordPress 输出的内容中,所有的 http://lucktang.com/ 域名替换为

http://lucktang.u.qiniudn.com/ 就能实现 CDN 加速。(仅作举例,只替换域名是错误的)

第三步:添加 WordPress 代码

在 WordPress 主题目录下的 functions.php 文件中,加入以下代码实现替换功能:

  1. if ( !is_admin() ) {
  2.     add_action('wp_loaded','lucktang_ob_start');
  3.     function lucktang_ob_start() {
  4.         ob_start('lucktang_qiniu_cdn_replace');
  5.     }
  6.     function lucktang_qiniu_cdn_replace($html) {
  7.         return str_replace('[这里填写博客路径]', '[这里填写七牛空间路径]', $html);
  8.     }
  9. }

以上传目录 wp-content/uploads/ 文件夹为例,路径就应该替换为如下代码:

  1. return str_replace('http://lucktang.com/wp-content/uploads/', 'http://lucktang.u.qiniudn.com/wp-content/uploads/', $html);

如果你需要更具体的范围控制(多目录、指定文件类型),可使用以下代码替换上面的lucktang_qiniu_cdn_replace 部分:

  1. //修改自七牛镜像存储 WordPress 插件
  2. function lucktang_qiniu_cdn_replace($html){
  3.     $local_host = 'http://lucktang.com'; //博客域名
  4.     $qiniu_host = 'http://lucktang.u.qiniudn.com'; //七牛域名
  5.     $cdn_exts   = 'js|css|png|jpg|jpeg|gif|ico'; //扩展名(使用|分隔)
  6.     $cdn_dirs   = 'wp-content|wp-includes'; //目录(使用|分隔)
  7.     $cdn_dirs   = str_replace('-', '-', $cdn_dirs);
  8.     if ($cdn_dirs) {
  9.         $regex  =  '/' . str_replace('/', '/', $local_host) . '/((' . $cdn_dirs . ')/[^s?\'";><]{1,}.(' . $cdn_exts . '))(["\'s?]{1})/';
  10.         $html =  preg_replace($regex, $qiniu_host . '/$1$4', $html);
  11.     } else {
  12.         $regex  = '/' . str_replace('/', '/', $local_host) . '/([^s?\'";><]{1,}.(' . $cdn_exts . '))(["\'s?]{1})/';
  13.         $html =  preg_replace($regex$qiniu_host . '/$1$3', $html);
  14.     }
  15.     return $html;
  16. }

大功告成

简单的3步,就能让你的 WordPress 实现 CDN 加速。当然,如果你的需求还包括加速远程图片或刷新缓存等,那么还是老老实实安装七牛镜像存储 WordPress 插件吧。

相关推荐

评论已关闭!