Встроенная поддержка emoji в WordPress сама по себе не критична, но на небольших и средних сайтах она часто добавляет лишние подключения и скрипты, которые не нужны ни в админке, ни на фронтенде. Если задача — чуть разгрузить страницу и убрать один из источников мусорных запросов, это можно сделать аккуратно, без вмешательства в ядро.
Ниже разберём, что именно отключается, как проверить, что всё сработало, и где чаще всего ломают решение, когда копируют код из старых статей.
Что именно отключаем и зачем
WordPress подгружает скрипт, который помогает отображать emoji в старых браузерах. На современных проектах это обычно не требуется. На практике речь идёт о нескольких действиях: удалении подключения скрипта wp-emoji-release.min.js, отключении inline-стилей и фильтров, которые WordPress добавляет для этой функции.
Если сайт работает на актуальных браузерах и вы не поддерживаете очень старые устройства, отключение emoji обычно безопасно. Но важно не путать это с отключением самих emoji как символов: текст с эмодзи в записях останется, просто WordPress перестанет вмешиваться в их рендеринг.
Диагностика: есть ли смысл трогать emoji
Сначала проверьте, действительно ли на сайте есть эти подключения. Откройте исходный код страницы и найдите:
wp-emoji-release.min.js;- inline-скрипт с настройками emoji;
- дополнительные стили, связанные с emoji.
Если вы используете инструменты разработчика в браузере, посмотрите вкладку Network: на фронтенде не должно быть запроса к wp-emoji-release.min.js после отключения. В админке этот скрипт может оставаться, если вы не убираете его отдельно.
Ещё один практический момент: если у вас подключён тяжёлый оптимизатор, он может уже удалять emoji автоматически. Тогда дублировать код не нужно — сначала проверьте, не делает ли это плагин.
Пошаговое решение через functions.php или мини-плагин
Самый предсказуемый вариант — добавить код в дочернюю тему или в небольшой mu-plugin. Так вы не потеряете изменения после обновления темы.
Вариант 1: отключить emoji на фронтенде
Этот код убирает основные подключения WordPress, связанные с emoji:
add_action( 'init', function () {
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', 'wp_staticize_emoji' );
remove_filter( 'comment_text', 'wp_staticize_emoji' );
} );Если вам нужно убрать emoji только на сайте, но оставить их в админке, можно не трогать admin_print_scripts и admin_print_styles. Это полезно, если редакторы работают в среде, где вы не хотите менять поведение интерфейса.
Вариант 2: отключить emoji только на фронтенде, но оставить в админке
Такой сценарий встречается чаще: на сайте вы хотите убрать лишнее, а в панели оставить стандартное поведение WordPress без сюрпризов.
add_action( 'init', function () {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_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', 'wp_staticize_emoji' );
remove_filter( 'comment_text', 'wp_staticize_emoji' );
} );Этот вариант не затрагивает админские скрипты и стили, поэтому безопаснее для команд, которые не хотят менять редакторскую среду.
Если удобнее через плагин: что выбрать
Для такой задачи можно использовать и плагин, но только если он не перегружает сайт лишними функциями. Если у вас уже стоит оптимизатор вроде Clearfy Pro, проверьте, не отключает ли он emoji и другие технические мелочи. В этом случае отдельный код может быть не нужен.
| Подход | Плюсы | Минусы | Когда брать |
|---|---|---|---|
| Код в теме / mu-plugin | Прозрачно, без лишних зависимостей | Нужно не забыть про обновления и место размещения | Если нужен точечный контроль |
| Оптимизирующий плагин | Удобно, часто есть рядом другие полезные настройки | Может конфликтовать с темой или другим оптимизатором | Если уже используете такой плагин |
| Ничего не делать | Ноль риска сломать поведение | Лишние запросы остаются | Если сайт и так уже оптимизирован |
Как проверить, что решение сработало
Проверка нужна не только на глаз. Сделайте три шага:
- Откройте главную страницу и посмотрите исходный код: строк с
wp-emoji-release.min.jsбыть не должно. - В DevTools откройте Network и обновите страницу: запрос к emoji-скрипту не должен появляться.
- Проверьте запись с emoji в тексте: символы должны отображаться нормально, без замены на пустые квадраты или иконки.
Если вы отключали emoji только на фронтенде, зайдите в админку и убедитесь, что редактор работает как обычно. Это особенно важно, если у вас кастомная тема или набор плагинов для визуального редактирования.
Частые ошибки и как их исправить
Код добавили не туда
Если вставить код в файл темы, который потом перезаписывается обновлением, настройка исчезнет. Для стабильности лучше использовать дочернюю тему или mu-plugin.
Удалили только часть хуков
Иногда убирают только wp_head, а стили и фильтры остаются. В итоге скрипт вроде бы исчез, но часть логики продолжает работать. Проверяйте весь набор подключений, а не один хук.
Дублируют отключение в плагине и в коде
Если оптимизатор уже отключает emoji, второй слой кода обычно не нужен. Дублирование не всегда ломает сайт, но усложняет диагностику: потом трудно понять, что именно повлияло на результат.
Путают emoji с иконками темы
Удаление emoji не должно затрагивать иконки Font Awesome, SVG-спрайты или другие наборы символов. Если после правки пропали иконки, проблема почти наверняка в другом месте — обычно в минификации, кешировании или неверной загрузке шрифтов.
Практические советы по безопасности и производительности
Если вы вносите такие правки на рабочем сайте, сначала проверьте их на staging-копии. Это особенно важно, если у вас есть кеш на уровне сервера, CDN или плагина: после изменения кода старые версии страниц могут ещё какое-то время отдаваться из кеша.
После внедрения очистите кеш везде, где он есть: плагин кеширования, серверный кеш, CDN. Иначе вы можете увидеть старый исходный код и решить, что код не сработал.
Если задача — системно убрать технический мусор, а не только emoji, имеет смысл посмотреть и на другие настройки очистки сайта. Например, в Clearfy Pro есть инструменты для удаления лишних элементов WordPress и сокращения дублей, что удобно, когда вы наводите порядок не точечно, а по всему сайту.
Когда лучше не отключать emoji
Если сайт ориентирован на очень старые браузеры, если у вас есть специфическая корпоративная среда с ограниченными клиентами или если вы уже видите, что emoji-скрипт используется сторонним плагином, отключение стоит отложить до проверки совместимости. В таких случаях сначала смотрят, кто именно добавляет зависимость, а потом уже убирают её точечно.
Для большинства современных проектов отключение emoji — это небольшая, но чистая оптимизация. Она не решает все проблемы производительности, зато убирает один лишний слой поведения WordPress и делает фронтенд чуть прозрачнее для дальнейшей настройки.