Эмодзи (emoji) — это встроенный набор смайликов, который автоматически загружается в WordPress. Несмотря на то, что они украшают контент, для многих сайтов, особенно профессиональных и корпоративных, использование встроенных эмодзи неактуально и создает дополнительные HTTP-запросы, что замедляет загрузку страниц.
В этой статье разберём, как правильно отключить эмодзи в WordPress, не потеряв при этом другие важные функции и не нарушив совместимость с плагинами и темами.
Почему стоит отключать эмодзи в WordPress
Стандартный скрипт эмодзи подключается через wp_enqueue_script('wp-emoji-release.min.js') и загружает дополнительные файлы, увеличивая количество запросов и размер страницы. Для сайтов, где минимизация и скорость критичны, отключение эмодзи позволит:
- Уменьшить количество HTTP-запросов.
- Снизить нагрузку на сервер и время загрузки.
- Избавиться от лишних стилей и скриптов.
- Сделать сайт более "чистым" и оптимизированным.
При этом важно корректно отключить эмодзи, чтобы не повредить работу редактора Gutenberg или некоторых плагинов, которые зависят от обработки смайлов.
Как отключить эмодзи стандартными средствами WordPress
WordPress предлагает фильтры и действия, которые позволяют отключить загрузку эмодзи. Вот проверенный способ сделать это через файл functions.php вашей темы или в отдельном плагине:
function wpid_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', 'wpid_disable_emojis_tinymce');
add_filter('emoji_svg_url', '__return_false');
}
add_action('init', 'wpid_disable_emojis');
function wpid_disable_emojis_tinymce($plugins) {
if (is_array($plugins)) {
return array_diff($plugins, array('wpemoji'));
} else {
return array();
}
}Этот код:
- Удаляет скрипты и стили эмодзи из фронтенда и админки.
- Отключает фильтры, которые заменяют текстовые смайлы на эмодзи в RSS и письмах.
- Удаляет плагин эмодзи из редактора TinyMCE, используемого в классическом редакторе.
- Отключает загрузку SVG-файлов эмодзи.
Таким образом, эмодзи перестанут загружаться и отображаться автоматически.
Проверка и тестирование после отключения эмодзи
После внедрения кода обязательно проверьте сайт:
- Просмотрите исходный код страницы — скрипты и стили эмодзи не должны присутствовать.
- Проверьте работу редактора (Gutenberg и классического) — смайлы не должны некорректно отображаться.
- Проверьте RSS-ленты и почтовые уведомления — эмодзи не должны автоматически заменять текст.
Если вы используете плагины, которые зависят от эмодзи, протестируйте их работу. В случае проблем можно selectively отключать части кода.
Использование плагинов для отключения эмодзи
Если не хотите писать код вручную, можно использовать плагины. Например, Clearfy Pro — мощный инструмент для оптимизации сайта, который среди прочего умеет отключать эмодзи одним кликом.
Преимущества использования Clearfy Pro:
- Простота настройки через UI без правок кода.
- Оптимизация многих других параметров сайта.
- Поддержка и обновления от разработчиков.
Также существуют бесплатные плагины в репозитории WordPress, например, "Disable Emojis". Но они часто содержат только базовые функции, в то время как Clearfy Pro даёт комплексное решение.
Альтернативный способ: отключение через фильтр wp_resource_hints
Эмодзи добавляют в HTML ссылки на внешние ресурсы через wp_resource_hints. Можно дополнительно убрать эти dns-prefetch запросы:
function wpid_remove_emoji_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;
}
add_filter( 'wp_resource_hints', 'wpid_remove_emoji_dns_prefetch', 10, 2 );Это помогает дополнительно убрать ненужные префетчи и уменьшить количество запросов.
Заключение по отключению эмодзи
Отключение эмодзи — простой и эффективный способ оптимизировать сайт на WordPress, особенно если смайлы не нужны вашему проекту. Использование приведённого кода или плагинов, таких как Clearfy Pro, позволит уменьшить количество запросов и ускорить загрузку страниц без потери функционала редактора и совместимости с плагинами.