因为最近一段时间正在折腾网站改版事宜,域名更换了,主题也更换了,只是构建网站的程序没有换,还是继续使用wordpress程序。网站也首次启用了https的链接,这一换不要紧,很多问题并接踵而至了。尤其是更换https链接之后的CDN静态加速问题,之前一直用的是水煮鱼的插件,一直强制没有更新,所以不知道插件发展到了什么地步。更换网站后才发现,插件已不能用,尤其是不支持https。在网上找了若干种教程一一试用,插件也是试用了多少个,无奈这些插件都是N年未更新,根本不能用,最后都不成功。最终无奈,只得在某宝上找人代做,主要是要达到非插件方式实现网站的图片自动静态存储到七牛。虽然中间也有曲折,但最终还是解决了,现将代码分享出来,给那些需要的站长们。
当然,你要实现全站https的前提,你得在七牛有一个https的域名,并绑定。我想,那些问题大家应该都会,就不在此赘述了。七牛功能挺强大的,新注册用户实名认证后可以享受以下免费好礼:
无上限 免费上传流量
10GB 永久免费存储空间
10万次/月 PUT/DELETE请求
100万次/月 GET请求
10GB/月 免费CDN下载流量
750小时/月 免费自定义数据处理服务。关键是现在七牛可以免费注册https的域名,如果还没有七牛的,点此注册。
还有一个问题值得注意,有些主题是不支持JS被CDN的,霭客溪现在的主题就是这样,如果将JS、CSS这些静态资源都CDN到七牛的话,网站就会出错了。具体效果演示可以查看霭客溪网站效果,这个代码实现的功能是通过后台可视话操作上传的图片附件就自动上传至七牛,网站前台调用的图片也是七牛的资源,可以减轻原服务器的压力,提升网站访问速度。
同时,原服务器会正常保留你所上传的图片,避免哪天七牛崩溃了你网站无图片附件的尴尬。不过,七牛目前来说算是比较稳定的了,功能也越来越人性化,应该是没有太大问题的。如果七牛真有问题了,删此代码,文章图片附件地址自动变回原网站图片。使用方法,将以下代码拿进主题内的functions.php文件中,更改好自己的网站域名和七牛域名,即可使用。具体代码如下:
//七牛镜像存储
if ( !is_admin() ) {
add_action('wp_loaded','meediy_ob_start');
function meediy_ob_start() {
ob_start('meediy_qiniu_cdn_replace');
}
function meediy_qiniu_cdn_replace($html){
$local_host = 'https://www.xxx.com'; //博客域名
$qiniu_host = 'https://cdn.xxx.com'; //七牛域名
$cdn_exts = 'png|jpg|jpeg|gif|ico'; //扩展名(使用|分隔)
$cdn_dirs = 'wp-content|wp-includes'; //目录(使用|分隔)
$cdn_dirs = str_replace('-', '\-', $cdn_dirs);
if ($cdn_dirs) {
$regex = '/' . str_replace('/', '\/', $local_host) . '\/((' . $cdn_dirs . ')\/[^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/';
$html = preg_replace($regex, $qiniu_host . '/$1$4', $html);
} else {
$regex = '/' . str_replace('/', '\/', $local_host) . '\/([^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/';
$html = preg_replace($regex, $qiniu_host . '/$1$3', $html);
}
return $html;
}
}