Как удалить версию WordPress из некоторых .css/.js файлов
Я знаю, что могу использовать следующую функцию для удаления версии из всех .css
и .js
файлов:
add_filter( 'style_loader_src', 'sdt_remove_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'sdt_remove_ver_css_js', 9999 );
function sdt_remove_ver_css_js( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
Но у меня есть некоторые файлы, например style.css
, для которых я хочу добавить версию следующим образом:
function css_versioning() {
wp_enqueue_style( 'style',
get_stylesheet_directory_uri() . '/style.css' ,
false,
filemtime( get_stylesheet_directory() . '/style.css' ),
'all' );
}
Но предыдущая функция удаляет также и эту версию. Как сделать так, чтобы эти две функции работали вместе?

Вы можете проверить текущий handle перед удалением версии.
Вот пример (не тестировался):
add_filter( 'style_loader_src', 'sdt_remove_ver_css_js', 9999, 2 );
add_filter( 'script_loader_src', 'sdt_remove_ver_css_js', 9999, 2 );
function sdt_remove_ver_css_js( $src, $handle )
{
$handles_with_version = [ 'style' ]; // <-- Настройте под свои нужды!
if ( strpos( $src, 'ver=' ) && ! in_array( $handle, $handles_with_version, true ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}

С момента написания этого вопроса в WordPress многое изменилось. Вот новый способ предотвратить отображение версии WordPress:
// удаляем версию из head
remove_action('wp_head', 'wp_generator');
// удаляем версию из rss
add_filter('the_generator', '__return_empty_string');
// удаляем версию из скриптов и стилей
function remove_version_scripts_styles($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'remove_version_scripts_styles', 9999);
add_filter('script_loader_src', 'remove_version_scripts_styles', 9999);
Не требуется редактирования. Просто добавьте в functions.php и готово. Или создайте простой пользовательский плагин. Выбор за вами! :)

этот ответ не скопирован напрямую отсюда? Всегда следует указывать автора оригинала, если только вы не написали эту статью сами

Добавил ссылку на оригинальную статью. Без обид. Я просто хотел помочь людям решить проблему. Я никогда не присваивал авторство себе.

Я не утверждал, что вы это сделали, просто показал правильный способ. Вот и всё :)

Для указания конкретного файла
// удаление версии из скриптов и стилей
function remove_version_scripts_styles($src) {
if (strpos($src, 'yourfile.js')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('script_loader_src', 'remove_version_scripts_styles', 9999);
