分享互联网知识,建站、IT话题杂谈

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

Leave a Reply to 佛系派 Cancel reply

Your email address will not be published. Required fields are marked *

3 thoughts on “WordPress移除静态资源版本号”