我观察到wp_head
每个.css
,.js
文件的源链接中的函数都已添加?ver=1
(或基于文件/库版本的其他编号)。如何覆盖它们以将其删除?
我认为此问题导致缓存清单部分出现问题。
我观察到wp_head
每个.css
,.js
文件的源链接中的函数都已添加?ver=1
(或基于文件/库版本的其他编号)。如何覆盖它们以将其删除?
我认为此问题导致缓存清单部分出现问题。
Answers:
您可以挂钩style_loader_src
并在URL上script_loader_src
运行remove_query_arg( 'ver', $url )
:
<?php
/* Plugin Name: Remove version parameter for scripts and styles */
add_filter( 'style_loader_src', 't5_remove_version' );
add_filter( 'script_loader_src', 't5_remove_version' );
function t5_remove_version( $url )
{
return remove_query_arg( 'ver', $url );
}
没有此插件:
插件激活后:
在一种情况下,该操作将失败:当某人不使用脚本/样式API,而是在标头中添加了硬编码的字符串时。
当我仍然必须从Google Fonts加载样式表时,这对我有用。
<?php
add_filter( 'script_loader_src', 'wpse130419_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', 'wpse130419_remove_script_version', 15, 1 );
function wpse130419_remove_script_version( $src ) {
$url = explode( '?', $src );
if ( $url[0] === 'http://fonts.googleapis.com/css' ) :
$version = explode( '&ver=', $url[1] );
$url[1] = $version[0];
endif;
return ( $url[0] === 'http://fonts.googleapis.com/css' )
? "{$url[0]}?{$url[1]}"
: $url[0]
;
}
remove_query_arg()
。