wordpress 加速主题的静态资源

文章目录

wordpress 加速主题的静态资源(固定的CSS、JS和图片等)

wordpress 中用函数 get_stylesheet_directory_uri() 生成当前主题的 URL , 格式如 http://host/path/wp-content/themes/twentyseventeen

当前主题的静态的CSS、JS和图片等一般由当前主题指定相对路径, 一个完整的静态文件的 URL 是 get_stylesheet_directory_uri() + 这个相对路径

如果 wordpress 被假设在国外的服务器上,在国内访问还是比较慢的,如果能把这些静态文件放在国内的服务器上,网站速度就会有所提升。改变 get_stylesheet_directory_uri() 就可以实现这个目的。

这个函数在 wp-includes/theme.php 文件的 194 行左右,wordpress4.7

这是一个比较笨的办法,这样当从中国浏览 wordpress 时,静态文件从又拍云上加速,当从国外浏览时从原站加载静态文件

1.

替换该函数的 return 并加入下行
	$ip_china = WP_CONTENT_DIR . '/china-ip.json';
	$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://';
	$cdn_china = $http_type . 'yisuo.b0.upaiyun.com/wp-content/themes/';
	$ip_remote = $_SERVER["REMOTE_ADDR"]; 
	$path_themes = apply_filters( 'stylesheet_directory_uri', $stylesheet_dir_uri, $stylesheet, $theme_root_uri );
	if(check_is_china_ip($ip_remote, $ip_china)) $path_themes = $cdn_china . $stylesheet;
	return $path_themes;
	/**
	 * Filters the stylesheet directory URI.
	 *
	 * @since 1.5.0
	 *
	 * @param string $stylesheet_dir_uri Stylesheet directory URI.
	 * @param string $stylesheet         Name of the activated theme's directory.
	 * @param string $theme_root_uri     Themes root URI.
	 */


2.

在 wp-includes/theme.php 文件的最后一行加入这个函数

# ****** 从json格式数据中检测IP是否来自中国
function check_is_china_ip($ip, $ipjson){
    $ip_addr = explode('.', $ip);
    if(count($ip_addr) < 4) return false;
    $a1 = (int)$ip_addr[0];
    $a2 = (int)$ip_addr[1];
    $a3 = (int)$ip_addr[2];
    $a4 = (int)$ip_addr[3];
    $s_china = file_get_contents($ipjson);
    $tb_china = json_decode($s_china, 1);
    unset($s_china);
    if(!isset($tb_china[$a1][$a2]) || count($tb_china[$a1][$a2]) == 0) return false;
    $a = $a3 * 256 + $a4;
    foreach($tb_china[$a1][$a2] as $d){
        if($a >= $d['s'] && $a <= $d['e']){
            return true;
        }
    }
    return false;
}

文件修改完毕

3.

相关的 IP 库放在网站的wp-content目录下

解压后这个文件不足 400 KB ,传到网站的wp-content目录下。下载地址

百度网盘 china-ip
本站 china-ip

原文链接:,转发请注明来源!

发表评论