В WordPress поддержка emoji включена по умолчанию уже много лет. На обычном сайте это редко критично, но на проекте с жесткими требованиями к скорости и чистоте фронтенда лишние подключения скрипта и стилей могут быть просто не нужны. Чаще всего задача звучит так: убрать emoji из <head>, не затронув редактор и не сломав ввод символов в админке.
Ниже разберем, что именно отключать, как понять, что проблема действительно есть, и как проверить результат после внедрения. Сразу оговорка: речь не про «запретить пользователям ставить смайлы», а про отключение стандартной технической обвязки WordPress для emoji на фронтенде.
Когда отключение emoji действительно имеет смысл
Если сайт небольшой и вы не трогаете производительность на уровне каждого запроса, выгода будет скромной. Но на нагруженных проектах, в теме с минималистичной версткой или при строгом аудите фронтенда это полезная чистка. Обычно отключение рассматривают в таких случаях:
- нужно убрать лишний JavaScript и CSS из
<head>; - есть политика по минимизации внешних и системных подключений;
- вы уже чистите WordPress от ненужных встроенных функций;
- хотите сократить количество запросов на страницах с высокой посещаемостью.
При этом на современных браузерах emoji и так отображаются без отдельной поддержки WordPress. Поэтому отключение чаще всего безопасно, если вы не используете старые браузеры как обязательную целевую аудиторию.
Диагностика: что именно подключает WordPress
Сначала проверьте, есть ли на сайте стандартный emoji-скрипт. В исходном коде страницы ищите wp-emoji-release.min.js и связанные inline-обработчики. Проще всего открыть страницу в браузере и посмотреть исходник, либо использовать инструменты разработчика.
Что искать в исходном коде
wp-emoji-release.min.jsв<head>;- inline-скрипт, который проверяет поддержку emoji;
- иногда — дополнительные стили, связанные с emoji-картинками.
Если вы видите эти элементы, значит WordPress не отключал стандартную поддержку emoji, и ее можно убрать без вмешательства в контент.
Как отключить emoji в WordPress через код
Самый надежный способ — убрать стандартные действия WordPress через remove_action(). Код лучше добавлять в дочернюю тему или в собственный мини-плагин, а не править ядро или чужую тему.
<?php
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' );
} );Этот вариант отключает emoji в фронтенде и в админке. Если вам нужно оставить поддержку в панели управления, уберите строки для admin_print_scripts и admin_print_styles.
Если нужен только фронтенд
Иногда достаточно убрать emoji только на публичной части сайта. Тогда код будет короче:
<?php
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' );
} );Такой подход обычно безопаснее, если редакторы привыкли к стандартному поведению админки и не хотят лишних изменений в интерфейсе.
Плагин или код: что выбрать
Если на сайте уже стоит плагин для технической очистки, отключение emoji можно сделать там же. Но если задача точечная, код часто проще и прозрачнее. Ниже — короткое сравнение.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в дочерней теме или мини-плагине | Контроль, минимум зависимостей, легко проверить | Нужно аккуратно разместить код |
| Плагин для оптимизации | Можно отключить рядом с другими встроенными функциями | Лишняя зависимость, не всегда понятно, что именно меняется |
| Ничего не делать | Ноль риска для текущей конфигурации | Лишние подключения остаются |
Если вы уже используете плагин для технической чистки сайта, например Clearfy Pro, имеет смысл проверить, не отключена ли emoji-функция там. Но для точечного сценария код обычно быстрее и предсказуемее.
Пошаговое решение без лишних рисков
- Сделайте резервную копию файлов и базы.
- Проверьте исходный код страницы и убедитесь, что emoji-скрипт действительно подключается.
- Добавьте код отключения в дочернюю тему или собственный плагин.
- Очистите кеш сайта, сервера и CDN, если он есть.
- Проверьте фронтенд, админку и RSS, если они для вас важны.
Если у вас есть staging-окружение, тестируйте сначала там. Это особенно полезно, если на сайте много плагинов, которые могут по-своему вмешиваться в wp_head или в фильтры контента.
Как проверить, что решение сработало
Проверка должна быть не «на глаз», а по факту отсутствия подключений. Откройте исходный код страницы и убедитесь, что:
- нет
wp-emoji-release.min.js; - нет emoji-стилей в
<head>; - страница открывается без ошибок в консоли;
- редактор записей в админке работает как раньше, если вы его не отключали.
Дополнительно можно проверить RSS-ленты и письма, если на сайте они активно используются. Это важно не всегда, но помогает убедиться, что отключение не задело вспомогательные каналы вывода.
Быстрая проверка через браузер
Откройте страницу, нажмите Ctrl+U или используйте просмотр исходного кода, затем найдите по странице emoji и wp-emoji. Если совпадений нет, значит стандартная обвязка отключена.
Частые ошибки и как их исправить
- Код добавили не туда. Если вставить его в шаблон, который не загружается на всех страницах, отключение сработает частично. Лучше использовать
functions.phpдочерней темы или мини-плагин. - Очистили только фронтенд, но не админку. Это не ошибка, если так и было задумано. Но если вы хотели убрать emoji полностью, проверьте все четыре группы действий и фильтров.
- Не сбросили кеш. После изменения в
wp_headстарый HTML может еще отдаваться из кеша, и кажется, что ничего не изменилось. - Отключили лишнее в надежде ускорить все сразу. Emoji — это точечная оптимизация. Она не заменяет нормальную работу с кешированием, изображениями и скриптами темы.
- Сломали совместимость с плагином оптимизации. Если другой плагин уже управляет этими же хуками, не дублируйте отключение без необходимости.
Что еще стоит проверить рядом с emoji
Если вы уже занимаетесь чисткой технического мусора, имеет смысл посмотреть и на другие встроенные вещи WordPress: лишние эмодзи, oEmbed, REST API в тех местах, где он не нужен, и тяжелые скрипты темы. Но отключать все подряд без диагностики не стоит — сначала измеряйте, потом меняйте.
Для сайтов, где важна системная оптимизация и SEO-гигиена, удобнее держать такие настройки в одном месте. Тогда проще понять, что именно отключено, и не ловить конфликты между темой, плагином кеша и отдельными сниппетами кода.