В процессе развития проекта на WordPress со временем в коде накапливаются устаревшие функции, неиспользуемые хуки и лишние стили или скрипты, которые замедляют работу сайта и усложняют поддержку. В этой статье подробно разберём, как можно автоматизировать выявление и удаление такого «мусора» в коде WordPress с помощью доступных инструментов и собственного кода.
Почему важно удалять старый и неиспользуемый код в WordPress
Со временем в проекте появляются устаревшие функции, которые больше не вызываются, старые скрипты и стили, подключаемые на всех страницах, а также неиспользуемые хуки и фильтры. Это приводит к нескольким проблемам:
- Увеличение времени загрузки страниц из-за лишних HTTP-запросов и выполнения лишнего кода.
- Рост риска конфликтов между плагинами и темами.
- Повышение сложности поддержки и внедрения новых функций.
- Увеличение размера базы данных, если неочищенный код связан с хранением данных.
Автоматизация удаления такого кода позволяет поддерживать проект в чистоте и оптимизировать производительность без постоянного ручного аудита.
Инструменты для анализа и выявления неиспользуемого кода в WordPress
Для начала нужно выявить, какой именно код можно удалить без вреда. Для этого существуют следующие методы и инструменты.
Плагины для поиска неиспользуемого CSS и JavaScript
Некоторые плагины помогают определить неиспользуемые стили и скрипты:
- Asset CleanUp — позволяет отключать загрузку отдельных CSS/JS файлов на выбранных страницах, тем самым выявляя ненужные ресурсы.
- Perfmatters — похож по функционалу, но также содержит дополнительные опции оптимизации.
Используйте эти плагины для поэтапного отключения и тестирования, какие ресурсы действительно не влияют на функционал.
Статический анализ PHP-кода
Для выявления неиспользуемых функций и хуков в PHP-коде можно применять статические анализаторы кода, например:
- PHPStan — мощный инструмент для анализа PHP-кода, который поможет найти неиспользуемые функции и переменные.
- Psalm — ещё один статический анализатор с похожими возможностями.
Для запуска анализа достаточно настроить инструмент на директорию с кодом плагинов и темы, после чего получить отчёт с рекомендациями.
Логирование вызовов хуков и функций
Иногда полезно логировать вызовы определённых хуков или функций, чтобы понять, насколько часто они используются. Для этого можно внедрить небольшой код, который будет записывать обращения в отдельный лог-файл или в базу данных.
function wpengine_log_hook_calls($hook_name) {
$log_file = WP_CONTENT_DIR . '/hook-calls.log';
$entry = date('Y-m-d H:i:s') . " - Hook called: " . $hook_name . "\n";
file_put_contents($log_file, $entry, FILE_APPEND);
}
add_action('all', function($hook_name) {
wpengine_log_hook_calls($hook_name);
});
Этот пример логирует все хуки, вызываемые на сайте, что позволяет понять, какие из них реально активны.
Автоматизация удаления кода — практические решения
После того как вы определили, какой код не используется, можно автоматизировать его удаление и отключение.
Автоматическое отключение неиспользуемых скриптов и стилей
Используя фильтры WordPress, можно программно отключать ненужные ресурсы на определённых страницах. Например:
function wpengine_dequeue_unused_assets() {
if ( ! is_page('contact') ) {
wp_dequeue_style('contact-form-7');
wp_dequeue_script('contact-form-7');
}
}
add_action('wp_enqueue_scripts', 'wpengine_dequeue_unused_assets', 100);
Этот код отключает подключение стилей и скриптов плагина Contact Form 7 на всех страницах, кроме страницы с контактной формой.
Удаление устаревших функций с помощью фильтров и хуков
Если в вашем проекте есть старые хуки, которые больше не нужны, их можно удалить через функцию remove_action или remove_filter. Чтобы автоматизировать этот процесс, создайте массив с неиспользуемыми хуками и отключайте их динамически:
function wpengine_remove_unused_hooks() {
$unused_hooks = [
['action', 'old_hook_name', 10],
['filter', 'old_filter_name', 20],
];
foreach ($unused_hooks as $hook) {
list($type, $name, $priority) = $hook;
if ($type === 'action') {
remove_action($name, '__return_false', $priority); // замените '__return_false' на реальное имя функции
} elseif ($type === 'filter') {
remove_filter($name, '__return_false', $priority); // замените '__return_false' на реальное имя функции
}
}
}
add_action('init', 'wpengine_remove_unused_hooks');
Такой подход позволяет централизованно управлять отключением устаревших хуков.
Автоматическое удаление неиспользуемых опций из базы данных
Часто в базе данных остаются записи с настройками плагинов, которые уже не используются. Для автоматизации очистки можно написать функцию, которая удалит определённые опции по списку:
function wpengine_cleanup_unused_options() {
$options_to_delete = [
'old_plugin_option1',
'unused_theme_setting',
];
foreach ($options_to_delete as $option_name) {
delete_option($option_name);
}
}
register_activation_hook(__FILE__, 'wpengine_cleanup_unused_options');
<Этот код запустится при активации плагина и удалит указанные опции из таблицы wp_options.
Рекомендуемые плагины для поддержки чистоты кода и оптимизации
Для упрощения задачи можно использовать готовые плагины, которые автоматизируют часть процесса:
- Clearfy Pro — позволяет отключать неиспользуемые функции WordPress и оптимизировать код без ручного вмешательства.
- WPengine Expert Review — помогает анализировать качество кода и выдаёт рекомендации по удалению устаревших элементов.
- Asset CleanUp — как упоминалось выше, для управления подключаемыми ресурсами.
Использование этих инструментов вместе с описанными методами создаёт мощный арсенал для автоматизации удаления лишнего кода.
Советы по поддержанию чистоты кода в долгосрочной перспективе
Чтобы не допустить накопления «мусора» в коде, придерживайтесь следующих рекомендаций:
- Регулярно проводите аудит подключаемых плагинов и тем, удаляйте неиспользуемые.
- Используйте систему контроля версий (например, Git) и ведите документацию изменений.
- Внедряйте автоматические тесты на интеграцию, чтобы быстро выявлять и удалять устаревший код.
- При разработке новых функций сразу учитывайте возможность их отключения без ущерба для системы.
Следуя этим советам, вы обеспечите стабильность и производительность вашего WordPress-сайта без лишних затрат времени на поддержку.
Для дополнительной автоматизации управления кодом и оптимизации рекомендуем ознакомиться с плагином Clearfy Pro, который поможет быстро отключить неиспользуемые функции и очистить систему от лишнего.