首页 > 解决方案 > 我的 Wordpress CSS 版本缓存更新问题

问题描述

我在 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'); ?>

(我不知道这会起作用)

标签: csswordpress

解决方案


我发现强制样式表将最新版本排入队列的最佳方法是使用该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*/


推荐阅读