WordPress移除静态资源版本号

在对wordpress进行Yslow和Pagespeed速度优化时,其中一项是移除静态资源的版本号。因为某些代理服务器,主要是Squid将带”?”的资源视为动态资源,即使在header中加上缓存声明也不行。所以,移除带”?”的版本号是非常有必要的。

用Autoptimize虽然可以自动合并CSS,JS文件并移除版本号,但是Wordpress新版本有一个文件Emoji的js文件合并不了,所以还需要使用本文中的办法进行设置。这里分别提供了插件和代码两种方式,根据自己的需要进行选择。

插件去除版本号

如果你不想用复杂的方法,仅仅想实现这个效果,那可以下载插件Remove Query Strings,安装后启用就可以了。这个插件会自动完成下列文章里看起来很复杂的一系列任务。
下载插件

代码手动去除版本号

除了插件外,我们还可以通过代码的方式来进行优化。建议在child theme的function.php文件里增加下列内容,这样主题升级了也不会丢失修改。

// Remove query string from static files 去除静态资源的版本号
function remove_cssjs_ver( $src ) {
 if( strpos( $src, '?ver=' ) )
 $src = remove_query_arg( 'ver', $src );
 return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );
add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );

参考资料:Easily Remove Query String From CSS & Javascript In WordPress

彻底去除wp-emoji-release.min.js

最后有些实在忍受不了这个wp-emoji-release.min.js,不能被Autoptimize完全合并,最终决定完全去除掉。在主题下的functions.php中添加如下语句:

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

参考资料:Removing Emoji code from header

天毅

Linux/php菜鸟,喜欢修修补补,喜欢分享,喜欢写博客,其实主要是喜欢找速度快的国外空间(剁手癌晚期,买VPS完全停不下来)...

在 “WordPress移除静态资源版本号” 上有 2 条评论

  1. “但是Wordpress新版本有一个文件Emoji的js文件合并不”之后不是应该分享一下移除默认emoji表情的方法么
    网上流传的移除表情代码都失效了

发表评论

电子邮件地址不会被公开。 必填项已用*标注