在排队的样式和脚本上阻止版本URL参数(?ver = XXX)


12

用例

我一直在尝试使用Chrome的开发工具工作区功能。它具有直接在开发工具中编辑文件并保存已保存的样式表的能力,甚至可以刷新自身(甚至编译然后刷新!)。

但是,如StackOverflow问题“ SASS重新编译CSS时Chrome的“自动重新生成CSS”不会重新加载页面”中所述,样式表URL上的URL参数阻止Chrome注意到更改。

期望的结果

这意味着,仅在开发期间,我才希望?ver=X.X.X从常规样式表<link>输出中删除wp_enqueue_style()。换句话说,我想要默认值href

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

改为:

http://localhost/mysite/wp-includes/style.css

Answers:


12

默认wp_enqueue_[style/script]()行为

默认值$version参数wp_enqueue_style()IS false。但是,该默认值仅意味着将样式表改为WordPress版本

多亏了“从WordPress的CSS和JS队列中删除版本”,我了解了一个未记录的事实,即null作为版本传入将完全删除该版本!

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

注意事项提醒

正如问题中所指出的,值得指出的是,这仅应在开发期间完成(如在特定用例中一样)。版本参数有助于站点访问者进行缓存(而不是缓存),因此在99%的情况下可能应该单独使用。


8

谢谢您的帖子,mrwweb。

我找到了另一种解决方案,通过创建一个非常简单的插件,您可以在不再开发站点时将其停用。

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

我花了几分钟尝试找到此解决方案。以为我可能会在这里分享另一个选择,而不是创建一个新的问题/答案。


不起作用...
reggie

这是正确的答案。在开发时使用此过滤器,并在启用后将其删除。
dtbaker

比出队和排队样式更好。也适用于带有过滤器的脚本script_loader_src
Dharma,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.