我知道我可以使用以下函数从所有.css
和.js
文件:
add_filter( \'style_loader_src\', \'sdt_remove_ver_css_js\', 9999 );
add_filter( \'script_loader_src\', \'sdt_remove_ver_css_js\', 9999 );
function sdt_remove_ver_css_js( $src ) {
if ( strpos( $src, \'ver=\' ) )
$src = remove_query_arg( \'ver\', $src );
return $src;
}
但我有一些文件,比如
style.css
, 如果我想通过以下方式添加版本:
function css_versioning() {
wp_enqueue_style( \'style\',
get_stylesheet_directory_uri() . \'/style.css\' ,
false,
filemtime( get_stylesheet_directory() . \'/style.css\' ),
\'all\' );
}
但前面的函数也会删除此版本。因此,问题是如何使这两者协同工作?
最合适的回答,由SO网友:birgire 整理而成
在删除版本之前,可以检查当前句柄。
以下是一个示例(未经测试):
add_filter( \'style_loader_src\', \'sdt_remove_ver_css_js\', 9999, 2 );
add_filter( \'script_loader_src\', \'sdt_remove_ver_css_js\', 9999, 2 );
function sdt_remove_ver_css_js( $src, $handle )
{
$handles_with_version = [ \'style\' ]; // <-- Adjust to your needs!
if ( strpos( $src, \'ver=\' ) && ! in_array( $handle, $handles_with_version, true ) )
$src = remove_query_arg( \'ver\', $src );
return $src;
}
SO网友:Amr
自从这个问题被写出来后,WordPress发生了很大的变化。以下是阻止WordPress显示其版本号的新方法:
// remove version from head
remove_action(\'wp_head\', \'wp_generator\');
// remove version from rss
add_filter(\'the_generator\', \'__return_empty_string\');
// remove version from scripts and styles
function remove_version_scripts_styles($src) {
if (strpos($src, \'ver=\')) {
$src = remove_query_arg(\'ver\', $src);
}
return $src;
}
add_filter(\'style_loader_src\', \'remove_version_scripts_styles\', 9999);
add_filter(\'script_loader_src\', \'remove_version_scripts_styles\', 9999);
无需编辑。添加到函数。php并完成。或者通过简单的自定义插件添加。这是你的选择!:)
Original article