在对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' );
3 thoughts on “WordPress移除静态资源版本号”
谢谢,马上就部署一下
“但是Wordpress新版本有一个文件Emoji的js文件合并不”之后不是应该分享一下移除默认emoji表情的方法么
网上流传的移除表情代码都失效了
/wp-admin/options-writing.php 这里关闭应该就可以了,我这里没有使用什么特别的办法 :)