WordPress免插件使用又拍云、七牛CDN加速

文章目录


七牛云就不多说了,我们在让WordPress 用上七牛云存储免费 CDN 加速服务这里已经说过了,下面来说说又拍云吧。又拍云是一个静态文件CDN加速服务,其实如果当站长的时间比较长的话都会听说过又拍云、七牛这两个兄弟,七牛的用户比较多,但又拍云的价格比较便宜,那为什么七牛云的用户这么多呢?我想是因为七牛云插件的强大,简单易用,而又拍云的插件——又拍云 WordPress 远程附件上传插件,因为特殊的原因原作者好像都没更新了,只有荒野无灯博主接替更新了一下,再加上我爱水煮鱼的推广力度太大,所以很多人都使用七牛,用又拍云的人很少。但WordPress博主总有使用又拍云的,下面就来说下如何免插件使用又拍云、七牛CDN加速吧。

WordPress免插件使用又拍云、七牛CDN加速

点击此处注册又拍云,把下面的代码加到主题的functions.php中,注意修改下面的参数。这个代码又拍云、七牛CDN加速都可以使用,但推荐七牛用户使用插件。

  1. define('FocusCDNHost','https://www.yooguo123.com');//wordpress网站网址  
  2. define('FocusCDNRemote','https://youguo.b0.upaiyun.com');//cdn域名  
  3. define('FocusCDNIncludes','wp-content,wp-includes');//设置加速目录  
  4. define('FocusCDNExcludes','.php|.xml|.html|.po|.mo');//设置文件白名单  
  5. 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.  
  6.     
  7. function do_cdnrewrite_ob_start() {  
  8. $rewriter = new FocusCDNRewriteWordpress();  
  9. $rewriter->register_as_output_buffer();  
  10. }  
  11. add_action('template_redirect', 'do_cdnrewrite_ob_start');  
  12.     
  13. class FocusCDNRewriteWordpress extends FocusCDNRewrite  
  14. {  
  15. function __construct() {  
  16. $excl_tmp = FocusCDNExcludes;  
  17. $excludes = array_map('trim', explode('|', $excl_tmp));  
  18.     
  19. parent::__construct(  
  20. FocusCDNHost,  
  21. FocusCDNRemote,  
  22. FocusCDNIncludes,  
  23. $excludes,  
  24. !!FocusCDNRelative  
  25. );  
  26. }  
  27. public function register_as_output_buffer() {  
  28. if ($this->blog_url != FocusCDNRemote) {  
  29. ob_start(array(&$this, 'rewrite'));  
  30. }  
  31. }  
  32.     
  33. }  
  34.     
  35. class FocusCDNRewrite {  
  36. var $blog_url    = null;  
  37. var $cdn_url     = null;  
  38. var $include_dirs   = null;  
  39. var $excludes    = array();  
  40. var $rootrelative   = false;  
  41.     
  42. function __construct($blog_url$cdn_url$include_dirsarray $excludes$root_relative) {  
  43. $this->blog_url   = $blog_url;  
  44. $this->cdn_url    = $cdn_url;  
  45. $this->include_dirs  = $include_dirs;  
  46. $this->excludes   = $excludes;  
  47. $this->rootrelative  = $root_relative;  
  48. }  
  49.     
  50. protected function exclude_single(&$match) {  
  51. foreach ($this->excludes as $badword) {  
  52. if (stristr($match$badword) != false) {  
  53. return true;  
  54. }  
  55. }  
  56. return false;  
  57. }  
  58.     
  59. protected function rewrite_single(&$match) {  
  60. if ($this->exclude_single($match[0])) {  
  61. return $match[0];  
  62. else {  
  63. if (!$this->rootrelative || strstr($match[0], $this->blog_url)) {  
  64. return str_replace($this->blog_url, $this->cdn_url, $match[0]);  
  65. else {  
  66. return $this->cdn_url . $match[0];  
  67. }  
  68. }  
  69. }  
  70.     
  71. protected function include_dirs_to_pattern() {  
  72. $input = explode(',', $this->include_dirs);  
  73. if ($this->include_dirs == '' || count($input) < 1) {  
  74. return 'wp\-content|wp\-includes';  
  75. else {  
  76. return implode('|', array_map('quotemeta', array_map('trim', $input)));  
  77. }  
  78. }  
  79.     
  80. public function rewrite(&$content) {  
  81. $dirs = $this->include_dirs_to_pattern();  
  82. $regex = '#(?<=[(\"\'])'; 
  83. $regex .= $this->rootrelative 
  84. ? ('(?:'.quotemeta($this->blog_url).')?') 
  85. : quotemeta($this->blog_url); 
  86. $regex .= '/(?:((?:'.$dirs.')[^\"\')]+)|([^/\"\']+\.[^/\"\')]+))(?=[\"\')])#';  
  87. return preg_replace_callback($regexarray(&$this, 'rewrite_single'), $content);  
  88. }  
  89.     
  90. }  

总结:

我们的目标是能不用一个插件就不用一个插件,插件会拖慢你的WordPress网站速度,代码对于又拍云、七牛CDN加速都适用,而且可以媲美插件,有白名单,可以设置加速目录,一般来说基本设置都有,对于又拍云、七牛云你们可以任选一个服务商,小博主也可以去使用,因为是有一定的免费用额,一般来说是够我们用了,所以不必担心,想知道如何使用的请看篇文章,还有一些其他的问题,要善于使用文章搜索!

还有这些可能你也想看看:

发表评论