苟活乱世
1

wp_enqueue_style 设置不当引起的css cache无法及时更新

语法结构

<?php wp_enqueue_style($handle, $src, $deps, $ver, $media); ?>

$handle – 调用的样式文件名称,唯一性,因此不能和其它css文件命名相同。

$src – css文件的路径(即url),不要直接使用域名url,要使用路径函数,如get_template_directory_uri()来获取主题目录中的样式文件。

$deps – 依赖关系,如果丢失某些其他样式文件将导致你的样式表将无法正常工作,你可以使用该参数设置“依赖关系”。,非必需。

$ver – 加载的css文件的版本号,可以使用主题的版本号或随意自定义一个,设置为null则不使用版本号。默认为false,使用WordPress的版本号。

$media – 是指CSS的媒体类型,比如“screen”或“handheld”或“print”。如果不知道是否需要,就留空。默认为“all”。

从上面关于这个函数的结构可以看出函数通过$ver来进行css文件的版本号,默认使用的是Wordpress版本,这就会导致浏览器缓存css文件的版本号是你当前wp的版本号, 例如style.css?ver=5.4 这样缓存之后即使你后台再怎么更新css文件 你wp不进行更新的话你的样式表文件永远都是使用5.4这个版本你的修改永远不会生效

解决方案

将下列代码加入 funshion.php文件中

function wpdaxue_remove_cssjs_ver( $src ) {
	if( strpos( $src, 'ver=' ) )
		$src = remove_query_arg( 'ver', $src );
	return $src;
}
add_filter( 'style_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );
add_filter( 'script_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );

第二种 设置$ver参数的值 设置为null即可将这个参数忽略掉 引用的链接不会附带版本信息

好评phpstorm

赞(0)
未经允许不得转载:南猫 » wp_enqueue_style 设置不当引起的css cache无法及时更新
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址