WordPress为js和css添加CDN

  这里为什么这样做就不多说了,有需求才这样做的,好歹速度会加快点,只是修改了脚本更新有点麻烦而已。当然这样做的前提是你对网站做了全站CDN,这个比较容易,不多介绍。
  只是我之前遇到个问题就是,有些不该修改的地方也被改动了,所以就需要将那些地方注释下,比如我之前就将评论地址也修改了,导致评论请求直接到CDN那里去了。

//修改资源URL
function change_template_uri($url){
    static $host = NULL;
    if($host === NULL){
        $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : "";
    }
    if($host){
        return str_replace("://{$host}/", "://loveyu-cdn.qiniudn.com/", $url); //我这里是该CDN地址
    }
    return $url;
}

add_filter('plugins_url', 'change_template_uri');
add_filter('template_directory_uri', 'change_template_uri');
add_filter('stylesheet_directory_uri', 'change_template_uri');

/**
 * @param WP_Scripts $obj
 */

function change_default_scripts_url(&$obj){
    static $host = NULL;
    if($host === NULL){
        //这里排除了wp-admin毕竟后台资源合并的时候没法用cdn
        $host = isset($_SERVER['HTTP_HOST']) && strpos($_SERVER['SCRIPT_NAME'],'/wp-admin')!==0 ? $_SERVER['HTTP_HOST'] : "";
    }
    if($host){
        $obj->base_url = str_replace("://{$host}", "://loveyu-cdn.qiniudn.com", $obj->base_url); //注意这里没有斜杠
        $obj->content_url = str_replace("://{$host}", "://loveyu-cdn.qiniudn.com", $obj->content_url);
    }
}
add_filter('wp_default_scripts', 'change_default_scripts_url');
add_filter('wp_default_styles', 'change_default_scripts_url');

22条评论在“WordPress为js和css添加CDN”

回复 可乐日记   取消