WordPress无需插件纯代码实现将网站静态资源(CSS,JS)存储到又拍云、七牛、腾讯云、阿里云等对象存储中给网站加速

WordPress七牛镜存储插件,WP SUPER CACHE的CDN功能,都是可以通过代码实现的。

WordPress无需插件纯代码实现将网站静态资源(CSS,JS)存储到又拍云、七牛、腾讯云、阿里云等对象存储中给网站加速

第一步

把你博客里的wp-content和wp-includes目录上传到七牛或又拍云、腾讯云、阿里云的对象存储中

 

WordPress无需插件纯代码实现将网站静态资源(CSS,JS)存储到又拍云、七牛、腾讯云、阿里云等对象存储中给网站加速

第二步

上传文件完之后,将以下代码中的网站地址修改成你的博客域名(注:结尾不要加 / )cdn域名修改成对象存储绑定的域名没有就填默认的域名(注:结尾不要加 / ),然后将以下代码放入主题的functions.php文件中最底部即可

define('FocusCDNHost','http://www.imotao.com');//wordpress网站网址
define('FocusCDNRemote','http://cdn.imotao.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);
}

}

 

原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/646.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
陌涛陌涛
上一篇 2019年8月22日 下午6:08
WordPress评论回复添加验证码防止垃圾评论
下一篇 2019年8月22日 下午6:16

相关推荐

  • WordPress默认编辑器可视化切换不见了,非插件导致消失问题

    升级到了WordPress 5.6,发现编辑文章的编辑器里没法切换。如下图 点击了右上角选项,依然看不到切换按钮 解决方法:1、后台–>用户–>我的个人资料2、看看 【…

    2021年3月28日
    1.0K00
  • 目前支持备案的域名后缀列表

    如果注册域名是为了建站,而且还是放在国内,那就免不了要考虑备案的问题。陌涛花了一些时间,把工信部允许备案的域名后缀给罗列出来了,大家看看吧! gTLD(通用顶级域名):com、ne…

    2021年1月7日
    88900
  • 1Panel之Docker overlay2 占用大量磁盘空间处理方法

    在使用 docker 时,往往会出现磁盘空间不足,导致该问题的通常原因是因为 docker 中部署的系统输出了大量的日志内容。 此时,可通过手动或定时任务进行清除。 针对 / va…

    2024年3月27日
    1.3K01
  • 【百度搜索资源平台】恢复低质量网站添加管理

    昨晚听群里人说百度站长可以添加低质量链接了,凌晨陌涛通过百度搜索资源平台抱着试一试的态度去添加陌涛的记事本,出乎意料的是,链接竟然成功通过了验证并被添加上了,没有出现“该站点为低质…

    2024年3月2日
    85300
  • 为您的网站添加SSL安全认证签章

    您只需要将代码添加在您网站的html页面的 body 标签中任意位置(建议添加在header或者footer位置),那么在你的网站上就会出现如图中效果展示一样的签章了。不过请注意:…

    2019年1月24日
    96700
  • Emlog网站信息统计代码

    有时候想在网页中向访客展示emlog博客的文章数量、评论数量、运行时间等信息,但emlog后台侧边栏没有提供相关的模块,因此需要博主自主添加博客统计信息代码。下面是博客吧整理的em…

    2019年1月24日
    1.2K00
  • 建站cms选择php还是java

    很多朋友在选择cms的时候,会面临一个问题,建站用php还是java?   建站用php,因为php是常用的网站编程语言,有全球超过81.7%的公共网站在服务器端采用PHP。而Ja…

    2022年10月7日
    76500
  • All-in-One WP Migration

    该插件无需技术知识即可导出您的WordPress网站,包括数据库,媒体文件,插件和主题。 PHP默认上传体积为2M,你可以参考以下教程修改: https://imotao.com/…

    2019年10月17日
    97300
  • WP AutoTags – 自动给文章添加相关关键词标签

    自动给文章关键词添加标签 WordPress的文章标签功能可以说是对文章尽心更为细致的分类、归纳,标签又和分类目录不同等不同。目前很多网站都延伸出的“专题” ,其实就是和标签有着异…

    2019年10月17日
    1.3K00
  • WordPress修改文件上传大小

    于Wordpress修改媒体文件的上传大小 在网站服务器端的PHP设置中,进行相关修改。 方法一(推荐): 在functions.php中添加如下代码,这样上传限制就是64M @i…

    2019年10月17日
    1.1K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。