我在 Wordpress 上有一个博客。我通常更新我的 CSS 文件,CSS 文件有一个标签,如:
<link rel='stylesheet' id='rit-style-css' href='https://www.lagaleramagazine.es/wp-content/themes/ri-maxazine/ri-maxazine/style.css?ver=5.2' type='text/css' media='all' />
你可以在这里看到直播:https://www.lagaleramagazine.es
问题是浏览器没有更新我的文件,它保持相同的版本 (5.2),所以我对文件所做的更改没有显示。
我试图在我的主题的 .php 文件中搜索 CSS 文件,但我无法让它工作。
如果你用https://www.lagaleramagazine.es/wp-content/themes/ri-maxazine/ri-maxazine/style.css?ver=5.3访问文件你会看到一个不同的版本 https://www.lagaleramagazine.es/wp-content/themes/ri-maxazine/ri-maxazine/style.css?ver=5.2 .
我搜索了一个解决方案,但问题是我无法在我的 Wordpress php 文件中找到 CSS 行标记:
/css/style.css?v=<?php echo date('his'); ?>
(我不知道这会起作用)
最佳答案
我发现强制样式表将最新版本加入队列的最佳方法是使用 filemtime()
函数,它将文件的修改日期用作最新版本。这样,它将相对缓存友好,但也会在样式更新时更新。
例如
wp_enqueue_style( 'rit-style-css', get_stylesheet_directory_uri() . '/style.css', array(), filemtime( get_stylesheet_directory() . '/style.css' ) );
确保将其放入已添加到 wp_enqueue_scripts
操作的函数中(如果尚未添加的话)。
如果您正在使用子主题或类似主题,那么您需要先将文件从队列中取出,然后再将其放入队列中。
function example_update_stylesheet(){
wp_dequeue_style( 'rit-style-css' );
wp_enqueue_style( 'rit-style-css', get_stylesheet_directory_uri() . '/style.css', array(), filemtime( get_stylesheet_directory() . '/style.css' ) );
}
add_action( 'wp_enqueue_scripts', 'example_update_stylesheet', 100 ); /*Late priority*/
关于css - 我的 Wordpress CSS 版本缓存更新有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56036793/