Як повідомити браузерам повторно оновити файли CSS/JS, коли файли змінено в WordPress?
У заголовках wordpress ви, ймовірно, помітили, що на статичні ресурси CSS і JS посилаються так:
https://justyy.com/wp-content/themes/twentytwelve/style.css?ver=4.4.2
Рядок запиту ?ver= використовується, щоб повідомити браузерам виконати примусове оновлення статичних ресурсів, коли змінюється версія ядра wordpress, оскільки деякі браузери можуть не мати змоги ігнорувати файли кешу, оскільки URL-адреса не змінилася.
Іноді я хочу змінити style.css у дочірній темі, але браузер усе ще отримує кешований файл, оскільки версія WordPress не змінилася. і мені потрібно перейти до CloudFlare, щоб очистити кеш. Кращим рішенням є змінити ?ver= на ?filetime=, щоб щоразу, коли файл було змінено, URL-адреса змінювалася.
Ви можете додати наступне до шаблону дочірньої теми functions.php, щоб це сталося.
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 );
Ви можете використовувати вміст файлу.