去除WordPress脚本和样式表的版本号

文章目录

用过七牛cdn的同学大概有过这样的经历:在主题里更新了一个js脚本或者css文件后,但是却无法更新七牛那里的缓存文件,因为js脚本或者css文件后面往往添加了?ver=xxx这样的版本号。本文介绍下问题产生的原因及解决办法。

版本号产生原因

这是因为WordPress中使用wp_enqueue_script()和wp_enqueue_style()引入js脚本和css样式表时,会生成一个版本号,如果你不亲自指定,版本号会是WordPress的版本号,比如3.7.1。版本号有好处,可以强制浏览器更新脚本,但有些SEO检测工具会认为带有版本号是非静态化的表现,同样给七牛cdn的缓存更新带来麻烦。

解决办法

在主题的functions.php中加入如下代码,就可以去除版本号:

1
2
3
4
5
6
function sb_remove_script_version( $src ){
    $parts = explode( '?', $src );
    return $parts[0];
}
add_filter( 'script_loader_src', 'sb_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', 'sb_remove_script_version', 15, 1 );

要注意的是,只有通过WordPress的方式引入脚本才会产生版本号,如果自己硬编码进去,这段代码是不起作用的,当然,不推荐硬编码js文件。

小结

本文参考了http://www.solagirl.net/remove-version-string-from-js-css.html这篇文章,确实解决了该问题。

本文出自 TENNFY博客,转载时请注明出处及相应链接。

本文永久链接: https://www.tennfy.com/1013.html

下一篇文章:

上一篇文章:

2人参与了讨论

  1. xilouqingzhu 说:

    加版本号强制刷新过,但一个代码高亮插件css好像被七牛自动加了版本号

发表评论

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

*

6 + 3 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部