Wordpress wp_enqueue_style版本不起作用

时间:2017-12-22 06:12:56

标签: wordpress

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

因此,我在Codex中了解了wp_enqueue_script()

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'

  2. 但浏览器加载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'

    2. 但是,浏览器只需加载style.css而不加?ver=~~

      1. 在版本参数上添加随机值 但是,浏览器只需加载style.css而不加?ver=~~
      2. 为什么呢?

3 个答案:

答案 0 :(得分: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 :(得分:1)

您应该以正确的方式加载wp_enqueue_style()的css。 例如,将此代码放在主题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

答案 2 :(得分: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()添加到文件引用版本。

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