Wie teilt man Browsern mit, CSS/JS-Dateien neu zu aktualisieren, wenn Dateien in WordPress geändert werden?
In WordPress- Headern werden Sie wahrscheinlich feststellen, dass auf die statischen CSS- und JS -Assets wie folgt verwiesen wird:
https://justyy.com/wp-content/themes/twentytwelve/style.css?ver=4.4.2
Die Abfragezeichenfolge ?ver= wird verwendet, um Browser anzuweisen, eine erzwungene Aktualisierung der statischen Ressourcen durchzuführen, wenn sich die Version des WordPress-Kerns geändert hat, da einige Browser die Cache-Dateien möglicherweise nicht ignorieren können, da sich die URL nicht geändert hat.
Manchmal möchte ich die style.css im Child-Theme ändern, aber der Browser ruft immer noch die zwischengespeicherte Datei ab, da sich die WordPress-Version nicht geändert hat. und ich muss zu CloudFlare gehen, um den Cache zu löschen. Eine bessere Lösung besteht darin, ?ver= in ?filetime= zu ändern, sodass sich die URL jedes Mal ändert, wenn die Datei geändert wurde.
Sie können Folgendes in die Vorlage „functions.php” des untergeordneten Themas einfügen, um dies zu erreichen.
function justyy_remove_cssjs_ver( $src) {
$newsrc = $src;
if( strpos( $newsrc, '?ver=')) {
$newsrc = remove_query_arg( 'ver', $newsrc );
}
$rootdir = '/var/www'; // the path to your domain on the server
$url = parse_url($newsrc, PHP_URL_PATH);
$source = $rootdir .'/'. $url;
if (is_file($source)) {
$newsrc .= "?m=".filemtime($source);
return $newsrc;
}
return $src; // keep unchanged if file is not accessible.
}
add_filter( 'style_loader_src', 'justyy_remove_cssjs_ver', 10, 2 );
add_filter( 'script_loader_src', 'justyy_remove_cssjs_ver', 10, 2 );
Sie könnten Dateiinhalt verwenden.