小十的个人博客

@小十

十分之十的小十

文章 339
朋友 14
来访 1812

LATEST POSTS

  • 郑州
  • www.xiaoten.com
  • 网站成立3239天

小十

  • 收藏品

wordpress开启cdn加速后,替换URL

因为近期换了新的主题,该主题强大之处在于很多功能都写在了主题本身的文件中了,不需要依靠插件来完成,同样的,我就卸载了WPJAM Basic插件。那么关于CDN加速这个功能就需要修改function.php文件来实现了。

首先,基于《整合 WordPress 与七牛云存储 CDN 加速服务》这篇文章,实现了上传的附件,自动同步存储在七牛云存储。除此之外,还需要一个步骤就是替换URL,同样也是依靠代码实现:

define('CDN_HOST','http://你的CDN链接');
add_filter('the_content','z_cdn_content');
function z_cdn_content($content){
return str_replace(home_url().'/wp-content/uploads', CDN_HOST.'/wp-content/uploads', $content);
}
add_filter('wp_get_attachment_url','z_get_attachment_url',10,2);
function z_get_attachment_url($url, $post_id){
return str_replace(home_url(), CDN_HOST, $url);
}

加入上面的代码之后,你插入文章内的图片和其他附件以及特色图片都会被替换为cdn的url了,这样也就达到了加速的效果。 如果你想要将主题的css、图片以及js等静态资源替换为CDN 的url进行加速,那么可以使用以下代码:

define('CDN_HOST','http://你的CDN链接');
add_filter('stylesheet_directory_uri','z_cdn_stylesheet_directory_uri',10,3);
function z_cdn_stylesheet_directory_uri($stylesheet_dir_uri, $stylesheet, $theme_root_uri) {
return str_replace(home_url(), CDN_HOST, $stylesheet_dir_uri);
}
add_filter('template_directory_uri','z_cdn_template_directory_uri',10,3);
function z_cdn_template_directory_uri($template_dir_uri, $template, $theme_root_uri)
{
return str_replace(home_url(), CDN_HOST, $template_dir_uri);
}

另外,如果不想使用代码实现,也可推荐另外一个CDN加速插件:Attachment CDN。

Comments | 3 条评论

  游客,你好 修改资料

*邮箱和昵称必须填写

  • 感谢分享

  • WPJAM Basic插件会导致好多莫名其妙的问题。

    • 小十

      @心灵博客 是的,所以我现在就不用了。尽量使用代码实现。另外CDN加速的话,推荐Attachment CDN,WPJAM Basic插件包含的功能太多。