Emoji — это забавные иконки, которые WordPress автоматически загружает через отдельные скрипты и стили, чтобы ваши сообщения и комментарии выглядели ярче. Однако, если вы не используете Emoji или хотите оптимизировать скорость загрузки сайта, отключение этой функции поможет уменьшить количество HTTP-запросов и общий вес страницы.
Почему стоит отключать Emoji в WordPress
По умолчанию WordPress добавляет несколько файлов в каждую страницу, чтобы поддерживать Emoji. Это включает в себя JavaScript и CSS, которые загружаются даже в том случае, если вы не используете Emoji в своих постах или комментариях. Для сайтов с высокой посещаемостью или требовательных к скорости загрузки это дополнительная нагрузка, которую можно убрать.
Отключение Emoji:
- Уменьшает количество запросов к серверу.
- Снижает объем загружаемых данных.
- Повышает скорость загрузки страниц.
- Снижает нагрузку на сервер и улучшает SEO.
Как отключить Emoji с помощью кода в functions.php
Самый простой способ — добавить в файл functions.php вашей темы (желательно дочерней) следующий код. Эта функция отключит загрузку скриптов и стилей, связанных с Emoji, а также уберет фильтры, которые конвертируют текстовые смайлы в Emoji.
function wp8_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_filter('tiny_mce_plugins', 'wp8_disable_emojis_tinymce');
add_filter('wp_resource_hints', 'wp8_disable_emojis_remove_dns_prefetch', 10, 2);
}
add_action('init', 'wp8_disable_emojis');
function wp8_disable_emojis_tinymce($plugins) {
if (is_array($plugins)) {
return array_diff($plugins, array('wpemoji'));
} else {
return array();
}
}
function wp8_disable_emojis_remove_dns_prefetch($urls, $relation_type) {
if ('dns-prefetch' == $relation_type) {
$emoji_svg_url = 'https://s.w.org/images/core/emoji/';
foreach ($urls as $key => $url) {
if (strpos($url, $emoji_svg_url) !== false) {
unset($urls[$key]);
}
}
}
return $urls;
}Этот код комплексно отключит все элементы, связанные с Emoji, включая поддержку в редакторе TinyMCE и предзагрузку ресурсов.
Отключение Emoji через плагины
Если вы не хотите править код вручную, можно воспользоваться специализированными плагинами для оптимизации сайта:
- Clearfy Pro — в этом плагине есть функция отключения Emoji и других ненужных элементов WordPress для повышения производительности. Подробнее можно посмотреть на wpshop.ru.
- Disable Emojis — простой и легкий плагин, который выключает Emoji без лишних настроек.
Проверка результата и дополнительные советы по оптимизации
После отключения Emoji рекомендую проверить исходный код страниц на предмет наличия скриптов и стилей wp-emoji-release.min.js. Их быть не должно.
Для проверки можно использовать инструменты браузера (F12) во вкладке Network или View Source.
Также полезно проводить комплексную оптимизацию сайта, включая:
- Удаление неиспользуемых CSS и JS файлов.
- Оптимизацию базы данных (см. статью wpshop.ru).
- Использование кэширования и CDN.
Заключение
Отключение Emoji — простой, но эффективный способ уменьшить нагрузку на сайт и ускорить загрузку страниц. Особенно это актуально для сайтов с высокой посещаемостью и строгими требованиями к скорости. Код, приведенный выше, можно использовать как базовое решение или расширить под свои нужды.