Поддержка Emoji появилась в WordPress начиная с версии 4.2. Система автоматически подключает JavaScript, CSS и дополнительные функции, необходимые для отображения эмодзи в старых браузерах. На современных сайтах эта возможность зачастую не используется, однако продолжает загружать дополнительные ресурсы, что может приводить к предупреждениям в сервисах анализа производительности, ошибкам отображения символов или конфликтам с темами и плагинами. В этой статье подробно рассмотрим, какие ошибки связаны с Emoji в WordPress, почему они возникают, как их диагностировать и правильно отключить при необходимости.

Что такое Emoji в WordPress

Emoji — это графические символы, которые могут использоваться в записях, комментариях, заголовках и другом содержимом сайта. Для поддержки старых браузеров WordPress автоматически подключает:
  • скрипт wp-emoji-release.min.js;
  • фильтры преобразования Emoji;
  • дополнительные HTTP-запросы.
На большинстве современных устройств дополнительная поддержка Emoji уже не требуется. WordPress Emoji ошибка: причины

Основные ошибки Emoji

  • лишние HTTP-запросы;
  • снижение оценки PageSpeed Insights;
  • ошибки отображения символов;
  • квадраты вместо Emoji;
  • символы «????»;
  • ошибки кодировки базы данных;
  • конфликты с минификацией JavaScript;
  • конфликты с плагинами оптимизации.

Как проверить загрузку Emoji

Откройте исходный код страницы и найдите файл:
wp-includes/js/wp-emoji-release.min.js
Если он подключается, значит поддержка Emoji активна.

Отключение Emoji через functions.php

Самый распространенный способ полностью отключить встроенную поддержку Emoji:
<?php

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');

remove_filter('the_content', 'convert_smilies');

?>
Код рекомендуется размещать в файле functions.php дочерней темы или в собственном плагине.

Удаление поддержки Emoji из редактора

<?php

add_filter('tiny_mce_plugins', function ($plugins)
{
    if (is_array($plugins))
    {
        return array_diff($plugins, array('wpemoji'));
    }

    return array();
});

?>

Удаление DNS Prefetch Emoji

WordPress может добавлять дополнительные DNS-запросы. Отключить их можно следующим кодом:
<?php

remove_action('wp_head', 'wp_resource_hints', 2);

?>
Если сайт использует другие подсказки ресурсов (например, preconnect или dns-prefetch для сторонних сервисов), лучше удалять только ссылку, относящуюся к Emoji, через соответствующий фильтр.

Emoji отображаются как квадраты

Если вместо Emoji отображаются пустые квадраты или прямоугольники, возможны следующие причины:
  • старый браузер;
  • отсутствие поддержки шрифта;
  • неверная кодировка страницы;
  • ошибки базы данных.

Проверка кодировки страницы

В секции <head> должна присутствовать строка:
<meta charset="UTF-8">
Современные Emoji корректно работают только при использовании UTF-8.

Проверка кодировки базы данных

Рекомендуется использовать:
utf8mb4_unicode_ci
или
utf8mb4_general_ci
Именно кодировка utf8mb4 поддерживает полный набор символов Unicode, включая Emoji.

Проверка текущей кодировки MySQL

SHOW VARIABLES LIKE 'character_set%';
Все параметры должны использовать utf8mb4.

Конвертация таблиц

ALTER TABLE wp_posts
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Перед выполнением подобных операций обязательно создайте резервную копию базы данных.

Ошибка после импорта базы данных

Если после переноса сайта Emoji отображаются некорректно, проверьте:
  • кодировку SQL-файла;
  • кодировку соединения MySQL;
  • кодировку таблиц;
  • версию MySQL или MariaDB.

Удаление Emoji через плагин

Если не хочется редактировать код, можно использовать плагины оптимизации производительности, которые позволяют отключить поддержку Emoji одной настройкой.

Влияние Emoji на PageSpeed

Сервисы Google PageSpeed Insights и Lighthouse могут рекомендовать отказаться от загрузки лишних ресурсов. Если Emoji не используются на сайте, отключение дополнительных скриптов уменьшает количество HTTP-запросов и может немного улучшить показатели производительности.

Когда не стоит отключать Emoji

Поддержку лучше оставить включенной, если:
  • посетители активно используют Emoji в комментариях;
  • эмодзи являются частью контента;
  • сайт ориентирован на мобильную аудиторию и социальные публикации.

Проверка после изменений

После отключения Emoji рекомендуется:
  • очистить кеш WordPress;
  • очистить кеш браузера;
  • очистить кеш CDN;
  • проверить исходный код страницы;
  • убедиться, что файл wp-emoji-release.min.js больше не подключается.

Полезные рекомендации

  • Используйте кодировку UTF-8 (utf8mb4) для сайта и базы данных.
  • Отключайте Emoji только в том случае, если они действительно не используются.
  • Не удаляйте системные файлы WordPress вручную.
  • После обновлений проверяйте работу темы и плагинов.
  • Перед внесением изменений создавайте резервную копию сайта.
  • Используйте дочернюю тему или собственный плагин для размещения пользовательского кода.

Заключение

Ошибки, связанные с Emoji в WordPress, чаще всего касаются не самих символов, а дополнительных скриптов, кодировки базы данных или конфликтов с оптимизацией сайта. В большинстве случаев поддержку Emoji можно безопасно отключить, если она не используется, что позволит сократить количество лишних запросов и немного улучшить производительность. Если же Emoji являются частью контента, важно обеспечить использование кодировки UTF-8 (utf8mb4), корректную настройку базы данных и совместимость темы с современными версиями WordPress.

Метки: ,