Wordpress wp_enqueue_style版本不起作用

问题描述 投票:0回答:3

我希望浏览器在用户刷新时加载css/js文件。

所以,我在wp_enqueue_script()读到了Codex

wp_enqueue_style( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, string $media = 'all' )

如你所见,$ver参数就在那里!

但是,它没有用。

这些都是我做的。

  1. 更改文件名。 get_stylesheet_directory_uri()。 '/ style.css中' get_stylesheet_directory_uri()。 '/ my_style.css'

但浏览器加载my_style.css。是的,wp_enqueue_style()效果很好。

  1. 直接添加ver get_stylesheet_directory_uri()。 '/ style.css中?版本= 0.001' get_stylesheet_directory_uri()。 '/ style.css中?版本= 1.0.0' get_stylesheet_directory_uri()。 '/ style.css中?版本= ABCDE'

但是,浏览器只加载没有style.css?ver=~~

  1. 在版本参数上添加随机值,但浏览器只需加载没有style.css?ver=~~

为什么?

wordpress
3个回答
2
投票

如果您可以使用wp_register_style函数,如果要在附加的css文件末尾添加随机版本号。将随机(版本)数字rand(111,9999)传递给第4个参数。示例在这里。您可以在functions.php中添加此代码

wp_register_style( 'custom-style', get_template_directory_uri() . '/css/custom-style.css', array(), rand(111,9999), 'all' );

1
投票

你应该以正确的方式加载qss与wp_enqueue_style()。例如,将此代码放在主题functions.php文件中:

function addStyles() {
    wp_enqueue_style( 'your-theme-name', get_template_directory_uri().'/style.css', array(), 'your-version');
}
add_action('wp_head', 'addStyles');

它有效:

enter image description here


1
投票

好的,我找到了答案。而且我认为这对以后的某人有帮助。

CSS版本。

function rpf_prevent_css_cache($src, $handle) {
  if ( $handle == 'rpf-main' ) {
    $src .= '?ver='.time();
  }
   eturn $src;
}
add_filter( 'style_loader_src', 'rpf_prevent_css_cache', 100, 2 );

Javascript版本。

function rpf_prevent_js_cache($src, $handle) {
  if ( $handle == 'rpf-main' || $handle == 'rpf-functions' ) {
    $src .= '?ver='.time();
  }
  return $src;
}
add_filter( 'script_loader_src', 'rpf_prevent_js_cache', 100, 2 );

如您所见,我只是通过使用过滤器将time()添加到文件ref版本。

rpf-main,rpf-functions是我的自定义句柄!

© www.soinside.com 2019 - 2024. All rights reserved.