WordPress по умолчанию загружает множество языковых файлов (.mo и .po), многие из которых могут быть не нужны вашему сайту. Это не только занимает место на сервере, но и влияет на скорость загрузки и производительность. В этом материале подробно разберём, как безопасно удалить неиспользуемые языковые файлы, а также как предотвратить их повторное появление.
Почему важно удалять неиспользуемые языковые файлы
Каждая тема и плагин WordPress могут содержать переводы на разные языки. При обновлении эти файлы подгружаются и сохраняются в папках wp-content/languages и внутри папок плагинов и тем. Если вы ведёте сайт на одном языке, большинство этих файлов просто занимают место, а иногда могут влиять на производительность из-за лишних запросов.
Удаление неиспользуемых языковых файлов способствует:
- Уменьшению размера бэкапов и копий сайта;
- Снижению нагрузки на файловую систему;
- Оптимизации загрузки сайта;
- Упрощению управления переводами.
Однако важно делать это правильно, чтобы не удалить нужные переводы.
Как определить, какие языковые файлы можно удалить
Прежде чем удалять что-то, нужно понимать, какие языки используются на сайте. Самый простой способ — проверить текущую локаль WordPress, которая задаётся в wp-config.php в константе WPLANG или в настройках административной панели.
Для определения активной локали можно использовать функцию:
function wplang_get_current_locale() {
return get_locale();
}
Зная локаль, например, ru_RU, можно оставить только файлы с таким именем и удалить остальные.
Удаление языковых файлов вручную и через код
Удаление через FTP или файловый менеджер
Самый прямой метод — подключиться к серверу через FTP или использовать встроенный файловый менеджер в панели хостинга и удалить лишние файлы из папок:
wp-content/languageswp-content/languages/pluginswp-content/languages/themes
Для примера, если сайт только на русском, можно удалить файлы с расширением .mo и .po для всех языков, кроме ru_RU.
Автоматизация удаления через код
Если вы хотите регулярно чистить папки с языковыми файлами, можно написать функцию, которая удалит все файлы, не соответствующие текущей локали. Вот пример функции для этого:
function wplang_remove_unused_language_files() {
$current_locale = get_locale();
$language_paths = [
WP_LANG_DIR . '/',
WP_LANG_DIR . '/plugins/',
WP_LANG_DIR . '/themes/'
];
foreach ($language_paths as $path) {
if (!is_dir($path)) continue;
$files = scandir($path);
foreach ($files as $file) {
if (preg_match('/\.mo$/', $file) || preg_match('/\.po$/', $file)) {
if (strpos($file, $current_locale) === false) {
@unlink($path . $file);
}
}
}
}
}
// Запускаем удаление при запуске админки (только один раз или по необходимости)
add_action('admin_init', 'wplang_remove_unused_language_files');
Эта функция проверяет стандартные пути локалей и удаляет файлы, не совпадающие с текущей локалью. Используйте с осторожностью и лучше сделайте резервную копию сайта перед использованием.
Как предотвратить повторное появление неиспользуемых языковых файлов
При обновлениях WordPress, плагинов и тем языковые файлы могут загружаться автоматически через систему переводов. Чтобы избежать повторного появления ненужных файлов, можно отключить автоматическую загрузку языков, которые не используются.
Отключение загрузки переводов плагинов и тем
Для этого добавим фильтр в functions.php вашей темы или в собственный плагин:
add_filter('auto_update_translation', function($update, $translation) {
$current_locale = get_locale();
if ($translation->language !== $current_locale) {
return false; // Отключаем обновление переводов для других языков
}
return $update;
}, 10, 2);
Это предотвратит загрузку переводов, не относящихся к активной локали.
Использование плагинов для управления языками
Для более гибкого управления языковыми файлами можно использовать плагин Clearfy Pro, который позволяет отключать ненужные локали и оптимизировать загрузку ресурсов.
В Clearfy есть настройки для отключения загрузки неиспользуемых языков WordPress, тем и плагинов, что помогает держать сайт в чистоте и быстрее.
Как проверить, что языковые файлы удалены и сайт работает корректно
После удаления файлов важно проверить корректность работы сайта и отображение текста. Для этого:
- Очистите кэш сайта и браузера;
- Проверьте страницы на предмет отсутствия странных меток или непереведённых строк;
- Отслеживайте ошибки в консоли браузера и логах сервера;
- При необходимости восстановите удалённые файлы из резервной копии.
Также можно использовать функцию WordPress:
load_textdomain('default', WP_LANG_DIR . '/ru_RU.mo');
чтобы принудительно загрузить нужный языковой файл и проверить, что перевод работает.