First, sorry my english. I am using Local by flywheel to manager my site files and my wordpress version is 4.9.4.
Here is the problem, When I use
wp_enqueue_style('wharever', get_stylesheet_uri());
To load style.css at the first time with a just simple content inside:
body { color: orange; }
Everything is just fine, and we have a page with everything in orange text, but when I change the style.css body color to green (or whatever), they just don't change, and always are orange.
PS.: in wp_enqueue_style, I changed the version parameter and he changes, but only at the first time and stuck with the first color I put for the version that was put.
If this is a feature of wordpress, how can I turn this off? This don't see quite useful know that we can't change style.css at will just to test without change version.
First, sorry my english. I am using Local by flywheel to manager my site files and my wordpress version is 4.9.4.
Here is the problem, When I use
wp_enqueue_style('wharever', get_stylesheet_uri());
To load style.css at the first time with a just simple content inside:
body { color: orange; }
Everything is just fine, and we have a page with everything in orange text, but when I change the style.css body color to green (or whatever), they just don't change, and always are orange.
PS.: in wp_enqueue_style, I changed the version parameter and he changes, but only at the first time and stuck with the first color I put for the version that was put.
If this is a feature of wordpress, how can I turn this off? This don't see quite useful know that we can't change style.css at will just to test without change version.
Share Improve this question asked Feb 20, 2018 at 19:34 DVDSONDVDSON 234 bronze badges 1 |3 Answers
Reset to default 3Another solution is to use filemtime
for the cachebusting, so that the last modified timestamp is used as the querystring variable.
This has the advantage that of still using the browser cache, and yet, a new file is served when the file is actually changed because the querystring changes. eg.
$lastmodtime= filemtime(get_stylesheet_directory().'/style.css');
wp_enqueue_style('whatever', get_stylesheet_uri(), array(), $lastmodtime);
It is a caching problem. To get around this I append a random string to the stylesheet uri that discourages the browser from caching it.
First you need a random string. I use this simple function to generate one.
function randomAlphaNumeric($length) {
$pool = array_merge(range(0,9), range('a', 'z'),range('A', 'Z'));
$key='';
for($i=0; $i < $length; $i++) {
$key .= $pool[mt_rand(0, count($pool) - 1)];
}
return $key;
}
Now just use it in your enqueue like this:
wp_enqueue_style('wharever', get_stylesheet_uri().'?random='.randomAlphaNumeric(5));
You can change your
wp_enqueue_style('wharever', get_stylesheet_uri());
to
wp_enqueue_style('wharever', get_stylesheet_uri(), array(), time(), 'all');
And it will start working just fine.
?ver=
to the url, it thinks it's a different stylesheet and reloads it. You can also "force refresh"; usually ctrl+f5 or apple+f5. – Nathan Johnson Commented Feb 20, 2018 at 20:07