В WordPress emoji поддерживаются не только на уровне контента, но и через отдельные скрипты и стили, которые подключаются на фронтенде и в админке. На небольшом сайте это обычно незаметно, но если вы чистите лишние запросы, оптимизируете <head> или приводите проект к более строгой технической конфигурации, emoji-обвязка становится лишней.
Задача здесь простая: убрать стандартные emoji-скрипты WordPress там, где они не нужны, и не задеть редактор, REST API или другие части админки. Ниже — рабочие варианты, диагностика, проверка и типичные ошибки.
Что именно отключаем и где это видно
WordPress добавляет набор функций для замены emoji в старых браузерах. В современных проектах это часто не требуется, но код всё равно может подключать:
- скрипт
wp-emoji-release.min.js; - inline-обработчики в
<head>; - стили для emoji в админке и на фронтенде.
Если открыть исходный код страницы, обычно видно лишний блок с инлайном и подключением скрипта. Это не критичная проблема, но для технической чистки сайта такие элементы часто убирают первыми.
Когда отключение действительно уместно
Отключать emoji имеет смысл, если:
- сайт ориентирован на современную аудиторию и старые браузеры не важны;
- вы уменьшаете количество лишних запросов и фрагментов в
head; - нужно привести сайт к более строгому baseline по производительности и чистоте кода;
- вы поддерживаете проект, где emoji не используются как часть контента и интерфейса.
Если сайт живёт в среде с очень старыми браузерами или специфическими корпоративными устройствами, отключение стоит тестировать аккуратно. Сам по себе emoji-код не ломает сайт, но лучше понимать, зачем вы его убираете.
Диагностика: как понять, что emoji действительно подключены
Проверка занимает минуту. Откройте любую публичную страницу сайта и посмотрите исходный код. Ищите фрагменты вроде:
<script type='text/javascript' src='https://example.com/wp-includes/js/wp-emoji-release.min.js?ver=6.x'></script>Также можно найти inline-скрипт, который WordPress вставляет в head. Если вы используете инструменты разработчика в браузере, проверьте вкладку Network: там будет отдельный запрос к emoji-скрипту.
На практике полезно проверить сразу три места:
- главную страницу сайта;
- запись или страницу с обычным контентом;
- админку, если вы планируете отключать код глобально.
Если emoji-скрипт есть только на фронтенде, а в админке он вам не нужен, можно убрать его частично. Если нужен полный отказ, отключаем и фронтенд, и админку, но с пониманием последствий.
Пошаговое решение через код
Самый надёжный вариант — добавить код в дочернюю тему или в собственный мини-плагин. Не советую править functions.php родительской темы на живом проекте без бэкапа: при обновлении всё потеряется.
Вариант 1: отключить emoji на фронтенде и в админке
Этот вариант убирает стандартные emoji-функции WordPress полностью:
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' );
add_filter( 'emoji_svg_url', '__return_false' );
} );Этот код можно вставить в functions.php дочерней темы или в отдельный файл плагина. Он не использует вымышленные хуки и опирается на стандартные функции WordPress.
Вариант 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' );
} );Такой подход полезен, если редакторы в админке всё ещё работают с emoji, а вы просто хотите облегчить фронтенд.
Плагин или код: что выбрать
Если задача разовая и проект небольшой, удобнее использовать плагин для оптимизации, где отключение emoji уже предусмотрено. Если вы ведёте несколько сайтов или хотите контролировать поведение точечно, код надёжнее: он прозрачен, не зависит от интерфейса плагина и не создаёт лишнюю административную нагрузку.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в теме/плагине | Контроль, предсказуемость, минимум зависимостей | Нужен доступ к файлам и базовое понимание PHP |
| Плагин оптимизации | Быстро включить, удобно для non-dev | Может дублировать другие оптимизации и усложнять поддержку |
| Не отключать | Ничего не ломаете, всё остаётся штатным | Лишний код и запросы остаются в проекте |
Если у вас уже стоит плагин вроде Clearfy Pro и в нём есть отдельная настройка для отключения emoji, это может быть самым быстрым способом. Но на проектах с жёстким контролем изменений я бы всё равно предпочёл код: так проще понять, что именно отключено и где.
Как проверить, что решение сработало
После внедрения обязательно проверьте не только страницу в браузере, но и исходный код. Это важнее, чем визуальная проверка: emoji на странице могут выглядеть нормально и без скрипта, если контент не содержит специфических символов.
- Откройте исходный код страницы и убедитесь, что
wp-emoji-release.min.jsбольше не подключается. - Проверьте, что в
<head>исчезли emoji-related inline-блоки. - Зайдите в админку и откройте редактор записи: интерфейс должен работать без ошибок в консоли.
- Проверьте RSS-ленту, если она используется: там не должно быть неожиданных изменений в выводе символов.
Если вы используете кэш-плагин или серверный кэш, после правки кода очистите кэш. Иначе вы можете смотреть на старую версию страницы и сделать неверный вывод, что код не сработал.
Частые ошибки и как их исправить
Код вставили не туда
Самая частая ошибка — добавить фрагмент в файл, который не загружается на фронтенде, или в тему, которая потом обновляется. Решение простое: используйте дочернюю тему или отдельный мини-плагин.
Ожидали, что emoji исчезнут из контента
Отключение скриптов WordPress не удаляет emoji из уже опубликованных материалов. Если в тексте есть сам символ emoji, он останется символом. Мы убираем только механизм подмены и лишние подключения.
Сломали админку из-за слишком агрессивной чистки
Если после отключения появились странности в редакторе, верните код и проверьте, не удалили ли вы лишние хуки. Иногда проблема не в emoji, а в другом оптимизационном фрагменте, который вы добавили одновременно.
Не учли кэш
Если на сайте стоит кэш страницы, CDN или агрессивная оптимизация HTML, старые версии могут сохраняться дольше, чем вы ожидаете. После изменения кода очистите все уровни кэша и перепроверьте страницу в приватном окне.
Практические советы по безопасности и производительности
Отключение emoji — мелкая оптимизация, но такие изменения лучше вносить дисциплинированно. На живом сайте не правьте код напрямую через встроенный редактор тем в админке: это неудобно для отката и повышает риск ошибки. Лучше использовать Git, SFTP или хотя бы staging-копию.
Если вы ведёте несколько проектов, вынесите подобные правки в отдельный мини-плагин. Тогда отключение emoji, лишних эмодзи-фильтров и других мелких оптимизаций можно централизовать и не размазывать по темам.
Для сайтов с более широкой задачей по чистке технического мусора имеет смысл посмотреть в сторону комплексных решений, где можно отключать не только emoji, но и другие лишние элементы WordPress. Например, у Clearfy Pro есть набор настроек для технической оптимизации и удаления части стандартного мусора, если это вписывается в ваш стек: Clearfy Pro.
Когда лучше ничего не отключать
Если сайт обслуживает очень широкий круг устройств, а вы не уверены в составе аудитории, не гонитесь за микроскопической чисткой любой ценой. В WordPress есть штатные механизмы не просто так: иногда проще оставить всё как есть, чем потом разбираться с редкой несовместимостью в старом браузере или в нестандартной корпоративной среде.
Но если задача — убрать лишнее из head, сократить количество штатных подключений и сделать техническую часть сайта аккуратнее, отключение emoji через код — один из самых безопасных и понятных шагов. Главное — проверять результат не на глаз, а по исходному коду и сетевым запросам.