На многих WordPress-сайтах разработчики и администраторы сталкиваются с проблемой накопления старых файлов changelog, которые создаются для фиксации изменений плагинов, тем или самого сайта. Эти файлы могут занимать значительный объем дискового пространства, создавать загромождение в структуре папок и даже представлять угрозу безопасности, если содержат конфиденциальную информацию о версиях и исправлениях. В этой статье мы рассмотрим, как автоматически удалять старые changelog-файлы на WordPress, используя примеры кода и плагины.
Что такое changelog и зачем его удалять
Changelog — это файл с историей изменений, который часто хранится вместе с плагинами и темами WordPress. Он помогает разработчикам и пользователям отслеживать добавленные функции, исправленные баги и улучшения. Однако на долгосрочной перспективе эти файлы не всегда нужны и могут занимать лишнее место.
Удаление старых changelog-файлов помогает освободить место на сервере, повысить безопасность и улучшить структуру файлов. Особенно важно это для сайтов с большим числом плагинов и кастомных тем, где количество changelog-ов может быть значительным.
Решение об автоматическом удалении changelog-ов должно быть продуманным, чтобы не потерять важную информацию. Обычно рекомендуется удалять changelog-ы старше определенного времени, например 30 или 60 дней.
Удаление changelog-файлов с помощью WP Cron
Для автоматизации удаления changelog-ов мы можем использовать функцию WP Cron, которая позволяет запускать задачи по расписанию. Ниже пример функции, которая удаляет файлы с именем changelog.txt старше 30 дней в папке wp-content/plugins.
function wpqa_delete_old_changelogs() {
$directory = WP_CONTENT_DIR . '/plugins';
$files = glob($directory . '/**/changelog.txt', GLOB_BRACE);
$now = time();
$days = 30; // количество дней
foreach ($files as $file) {
if (filemtime($file) < $now - ($days * 24 * 60 * 60)) {
@unlink($file);
}
}
}
// Регистрация события в WP Cron
if (!wp_next_scheduled('wpqa_delete_changelogs_event')) {
wp_schedule_event(time(), 'daily', 'wpqa_delete_changelogs_event');
}
add_action('wpqa_delete_changelogs_event', 'wpqa_delete_old_changelogs');
Этот код сканирует папку plugins и удаляет все changelog.txt старше 30 дней. Можно адаптировать путь и имя файла под свои нужды.
Как подключить этот код
Добавьте этот код в файл functions.php вашей темы или создайте маленький плагин для удобства управления. Так вы сможете контролировать расписание и логи удаления.
Использование плагинов для управления файлами
Если вам не хочется писать код, можно использовать плагины для автоматизации удаления ненужных файлов. Например:
- Clearfy Pro — плагин оптимизации, который позволяет управлять ненужными файлами и кешем, в том числе удалять устаревшие файлы.
- WP File Manager — плагин для управления файлами в админке, где можно создавать расписания для удаления.
- Advanced Cron Manager — плагин для управления WP Cron задачами, помогает контролировать и настраивать расписание очистки.
Использование плагинов удобно, если вы не хотите самостоятельно писать и тестировать код, но при этом важно следить за тем, чтобы задача удаления не мешала работе сайта.
Расширенные советы по безопасности и производительности
При автоматическом удалении файлов важно:
- Тестировать код на тестовом сайте, чтобы не удалить важные файлы.
- Использовать логирование — записывать в файл или в базу информацию о том, какие файлы были удалены и когда.
- Ограничивать права доступа к папкам, чтобы злоумышленники не смогли загрузить вредоносные changelog-файлы.
- Периодически проверять cron-задачи и убедиться, что они выполняются корректно.
Например, для логирования можно добавить в функцию удаление записи:
function wpqa_delete_old_changelogs() {
$directory = WP_CONTENT_DIR . '/plugins';
$files = glob($directory . '/**/changelog.txt', GLOB_BRACE);
$now = time();
$days = 30;
$log = WP_CONTENT_DIR . '/changelog_delete_log.txt';
foreach ($files as $file) {
if (filemtime($file) < $now - ($days * 24 * 60 * 60)) {
if (@unlink($file)) {
file_put_contents($log, date('Y-m-d H:i:s') . " - Deleted: $file\n", FILE_APPEND);
}
}
}
}
Выводы и рекомендации
Автоматическое удаление старых changelog-ов — полезная задача, которая помогает поддерживать порядок и безопасность вашего WordPress-сайта. С помощью WP Cron и простого PHP-кода вы сможете настроить регулярную очистку, а при необходимости — воспользоваться специализированными плагинами, такими как Clearfy Pro для более удобного управления.
Рекомендуется внимательно тестировать решения и вести логи, чтобы контролировать процесс и избежать случайного удаления важных данных.