【对所有的用户说声抱歉,因为某些原因网站被搁置了5个月无人打理。】

广告合作 | wordpress站内搜索 | 网页配色 | 投稿 | 快捷访问 | 交流QQ群:51353722 |

当前位置:wordpress主题 > wordpress教程 > wordpress加速优化教程:非插件部署cdn加速(七牛、又拍云)

wordpress加速优化教程:非插件部署cdn加速(七牛、又拍云)

对于cdn加速相信各位wordpress博主一定不陌生,毕竟网站加速是每个站长都关注的事情,而使用cdn加速静态资源对于网站的加速优化又占到了很大的比重。国内比较知名的两家cdn厂商七牛和又拍云都有对应的wordpress插件,不过使用插件本身就会影响到wordpress的运行速度和效率,虽然影响的速度很小几乎可以忽略不急但是对于小V这种强迫症患者是不允许任何一点速度上的浪费,但是如果不用cdn加速插件那么手动上传文件又大大的降低了小V更新文章的效率,那么只有将cdn插件的代码集成到主题中了,代码如下(加到functions.php文件即可):

define('FocusCDNHost','http://www.v7v3.com');//wordpress网站网址
define('FocusCDNRemote','http://0.v7v3.com');//cdn域名
define('FocusCDNIncludes','wp-content,wp-includes');//设置加速目录
define('FocusCDNExcludes','.php|.xml|.html|.po|.mo');//设置文件白名单
define('FocusCDNRelative','');//Check this if you want to have links like <wp-content/abc.png> rewritten - i.e. without your blog's domain as prefix.
 
function do_cdnrewrite_ob_start() {
$rewriter = new FocusCDNRewriteWordpress();
$rewriter->register_as_output_buffer();
}
add_action('template_redirect', 'do_cdnrewrite_ob_start');
 
class FocusCDNRewriteWordpress extends FocusCDNRewrite
{
function __construct() {
$excl_tmp = FocusCDNExcludes;
$excludes = array_map('trim', explode('|', $excl_tmp));
 
parent::__construct(
FocusCDNHost,
FocusCDNRemote,
FocusCDNIncludes,
$excludes,
!!FocusCDNRelative
);
}
public function register_as_output_buffer() {
if ($this->blog_url != FocusCDNRemote) {
ob_start(array(&$this, 'rewrite'));
}
}
 
}
 
class FocusCDNRewrite {
var $blog_url    = null;
var $cdn_url     = null;
var $include_dirs   = null;
var $excludes    = array();
var $rootrelative   = false;
 
function __construct($blog_url, $cdn_url, $include_dirs, array $excludes, $root_relative) {
$this->blog_url   = $blog_url;
$this->cdn_url    = $cdn_url;
$this->include_dirs  = $include_dirs;
$this->excludes   = $excludes;
$this->rootrelative  = $root_relative;
}
 
protected function exclude_single(&$match) {
foreach ($this->excludes as $badword) {
if (stristr($match, $badword) != false) {
return true;
}
}
return false;
}
 
protected function rewrite_single(&$match) {
if ($this->exclude_single($match[0])) {
return $match[0];
} else {
if (!$this->rootrelative || strstr($match[0], $this->blog_url)) {
return str_replace($this->blog_url, $this->cdn_url, $match[0]);
} else {
return $this->cdn_url . $match[0];
}
}
}
 
protected function include_dirs_to_pattern() {
$input = explode(',', $this->include_dirs);
if ($this->include_dirs == '' || count($input) < 1) {
return 'wp\-content|wp\-includes';
} else {
return implode('|', array_map('quotemeta', array_map('trim', $input)));
}
}
 
public function rewrite(&$content) {
$dirs = $this->include_dirs_to_pattern();
$regex = '#(?<=[(\"\'])';
$regex .= $this->rootrelative
? ('(?:'.quotemeta($this->blog_url).')?')
: quotemeta($this->blog_url);
$regex .= '/(?:((?:'.$dirs.')[^\"\')]+)|([^/\"\']+\.[^/\"\')]+))(?=[\"\')])#';
return preg_replace_callback($regex, array(&$this, 'rewrite_single'), $content);
}
 
}

以上代码中四个参数可以根据你自己的需求来自定义,其中网站域名和cdn域名是必须替换成你自己的(PS:cdn域名可以是七牛的也可以是又拍云的,不过使用时需要开启镜像功能,镜像网站为你自己的网站。)设置加速目录,这个预设好了,一般情况下不需要修改。文件白名单则是指不缓存的特定文件。

代码参考:kn007.net

温馨提示:您可以使用方向键来快速阅读本站文章。按ALT + A自动转跳到上一篇文章,按ALT + S自动转跳到下一篇文章,按ALT + Q则回到当前文章所属分类的首页,按ALT + C则随机转跳到一篇文章。
如非注明文章皆由wordpress主题下载原创,转载请注明出处!
文章链接:http://www.v7v3.com/wpjiaocheng/201402580.html
如果您觉得文章不错请把文章分享给更多人!

  1. 爱锚记
    10楼
    爱锚记:

    这段代码主要是上传文件到加速云的代码?有些还需自己琢磨。

    2016-01-12 13:58 [回复]
  2. 漠然
    9楼
    漠然:

    博主,请问设置以后 发现 upyun CDN 节点判断出现了问题;就是说 CDN 域名 会自动判断你的来访位置然后分配最近的服务器地址给你;但是我发现 用 wp super cache 没问题,用这段代码后 CDN 的 IP就会变得 很远 导致 访问变慢

    2015-07-20 11:28 [回复]
  3. 搞笑家
    8楼
    搞笑家:

    设置之后js。css不生效,倒是把.php生效了! :cry:

    2015-04-21 12:00 [回复]
  4. 幻影雪狮
    7楼
    幻影雪狮:

    怎么设置不缓存某个文件或者文件夹

    2014-12-31 20:47 [回复]
  5. 烂番茄
    6楼
    烂番茄:

    看到代码我就晕掉了。。

    2014-05-11 14:16 [回复]
  6. FocusCDNRelative 这个怎么设置 请问? 这个是显示无域名的吧?

    2014-04-06 17:02 [回复]
    • 小V
      小V:

      那个是绝对路径使用的,一般都不用管 :mrgreen:

      2014-04-06 17:50 [回复]
  7. hello
    4楼
    hello:

    博主用的就是这个方法加速的吗?另外我只想对图片,js,css进行cdn,怎么搞啊?

    2014-04-04 22:54 [回复]
    • 建立独立的二级域名,存放资源,这样便于管理。

      2016-01-12 13:56 [回复]
  8. 零度
    地板
    零度:

    博主这代码从哪来的啊,其实几行代码就可以搞定了,干麻搞一大堆。。。

    2014-02-26 18:19 [回复]
    • 小V
      小V:

      这段代码可定制性更高,可以设置缓存黑名单,和缓存目录 :mrgreen:

      2014-02-26 18:59 [回复]
  9. 挥洒由心
    板凳
    挥洒由心:

    写的很不错,通俗易懂,学习了 :mrgreen:

    2014-02-04 22:33 [回复]
  10. 小舞
    沙发
    小舞:

    恩,这个比我投的那个详细多了!

    2014-02-04 14:56 [回复]

发表评论

小舞

 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情

wordpress教程
返回顶部