Оптимизация производительности WordPress — одна из ключевых задач, с которой сталкиваются разработчики и администраторы сайтов. Правильное использование хуков — actions и filters — позволяет эффективно контролировать загрузку ресурсов, уменьшить время отклика и улучшить работу сайта без установки громоздких плагинов.
Что такое хуки в WordPress и почему они важны для оптимизации
Хуки — это специальные точки расширения в ядре WordPress, которые позволяют разработчикам внедрять собственный код без изменения исходных файлов. С помощью хуков можно добавлять, изменять или удалять функциональность, что особенно полезно для оптимизации. Например, можно отключить ненужные скрипты, убрать лишние запросы к базе или изменить поведение загрузки контента.
Понимание, как и где использовать хуки, помогает избежать тяжелых плагинов и снизить нагрузку на сервер, делая сайт быстрее и стабильнее.
Основные типы хуков: actions и filters
В WordPress существуют два основных типа хуков:
- Actions — позволяют добавить или выполнить код в определённый момент выполнения WordPress.
- Filters — позволяют изменить данные перед их выводом или сохранением.
Для оптимизации чаще всего применяют оба типа, например, чтобы отключить стили и скрипты, изменить поведение запросов или кэшировать результаты.
Примеры использования хуков для повышения производительности
Отключение Emoji скриптов и стилей
WordPress по умолчанию загружает скрипты для поддержки Emoji, которые не всегда нужны и увеличивают количество запросов.
function wpkit_disable_emojis() {
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_styles', 'print_emoji_styles');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
}
add_action('init', 'wpkit_disable_emojis');Этот код полностью отключает загрузку скриптов и стилей Emoji, снижая количество HTTP-запросов.
Отключение Gutenberg блоков, которые не используются
Если вы не используете все блоки редактора Gutenberg, их можно отключить для снижения нагрузки.
function wpkit_disable_unused_gutenberg_blocks() {
wp_dequeue_script('wp-block-library');
wp_dequeue_style('wp-block-library');
}
add_action('wp_enqueue_scripts', 'wpkit_disable_unused_gutenberg_blocks', 100);Такой подход уменьшит вес страниц и ускорит загрузку.
Оптимизация запросов к базе данных через фильтр pre_get_posts
Иногда стандартные запросы WordPress к базе данных можно оптимизировать, например, исключить определённые типы записей с главной страницы.
function wpkit_optimize_main_query(\WP_Query $query) {
if (is_admin() || !$query->is_main_query()) {
return;
}
if ($query->is_home()) {
$query->set('post_type', ['post']); // Исключаем кастомные типы записей
$query->set('posts_per_page', 10); // Ограничиваем количество записей
}
}
add_action('pre_get_posts', 'wpkit_optimize_main_query');Такой фильтр уменьшает нагрузку на базу данных и ускоряет формирование страницы.
Дополнительные советы по оптимизации с помощью хуков
Отключение REST API для неавторизованных пользователей
REST API может быть полезен, но иногда его стоит отключить для гостей, чтобы снизить нагрузку и повысить безопасность.
function wpkit_disable_rest_api_for_guests($access) {
if (!is_user_logged_in()) {
return new WP_Error('rest_cannot_access', 'Доступ запрещён', array('status' => 403));
}
return $access;
}
add_filter('rest_authentication_errors', 'wpkit_disable_rest_api_for_guests');Это простой способ снизить потенциальную нагрузку и закрыть REST API от посторонних.
Удаление версий скриптов и стилей из URL
Версии в URL часто мешают кешированию. Можно убрать их, чтобы браузер кэшировал файлы дольше.
function wpkit_remove_version_from_assets($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('script_loader_src', 'wpkit_remove_version_from_assets', 9999);
add_filter('style_loader_src', 'wpkit_remove_version_from_assets', 9999);Убирая версии, вы повышаете вероятность использования кеша браузером, что ускоряет загрузку страниц.
Инструменты и плагины для удобного управления хуками
Для контроля и тестирования хуков можно использовать плагин Query Monitor. Он показывает, какие хуки и запросы выполняются, позволяя выявить узкие места.
Также полезен плагин Clearfy Pro, который упрощает отключение ненужных функций WordPress через интерфейс, снижая потребление ресурсов.