WordPress до сих пор по умолчанию подгружает поддержку эмодзи через отдельный скрипт и стили. На небольшом сайте это не критично, но на проектах, где важны лишние запросы, контроль над фронтендом и чистота сборки, этот хвост обычно убирают. Задача простая: отключить emoji-обработку так, чтобы не сломать редактор, комментарии и админку.
Ниже разберём, где именно это отключается, чем отличается решение через код от плагина и как проверить, что изменения реально сработали.
Когда отключение эмодзи имеет смысл
Сама по себе поддержка emoji не делает сайт медленным, но она добавляет отдельные подключения и немного усложняет фронтенд. Обычно это имеет смысл, если:
- вы собираете сайт с упором на минимальное число запросов;
- используете строгий performance-аудит и убираете всё лишнее;
- на сайте нет необходимости в старой совместимости с браузерами, ради которой эта поддержка и сохранялась;
- вы хотите убрать неиспользуемый код из темы или плагина, чтобы проще было контролировать результат.
Если у вас редактор Gutenberg, комментарии и админка работают штатно, отключение на фронтенде обычно проходит без последствий. Но делать это лучше осознанно, а не «на всякий случай».
Диагностика: что именно грузит WordPress
Перед правкой проверьте, есть ли на странице подключение emoji-скрипта. В исходнике страницы или в DevTools ищите запросы к wp-emoji-release.min.js. Обычно он появляется через стандартный хук WordPress и может быть виден в списке подключённых скриптов.
Если хотите быстро понять, есть ли проблема, откройте страницу сайта и проверьте:
- исходный HTML на наличие
wp-emoji-release.min.js; - вкладку Network в браузере — есть ли отдельный запрос к этому файлу;
- не добавляет ли его тема или плагин повторно поверх стандартной загрузки.
Если скрипт уже отсутствует, значит отключать нечего, и искать нужно не в WordPress core, а в теме или стороннем плагине.
Как отключить эмодзи через код
Самый прозрачный способ — снять стандартные действия WordPress на init и отключить фильтры, которые добавляют emoji-обработку в контент, email и админ-стили. Код лучше добавить в дочернюю тему или в небольшой mu-plugin, если вы не хотите зависеть от темы.
Вариант для functions.php или собственного плагина
<?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' );
remove_filter( 'the_content', 'wp_staticize_emoji' );
remove_filter( 'comment_text', 'wp_staticize_emoji' );
} );Этот вариант убирает стандартную emoji-обвязку из фронтенда и админки. Если вам нужно отключить её только на сайте, но оставить в панели управления, не трогайте admin_print_scripts и admin_print_styles.
Если нужен только фронтенд
<?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' );
remove_filter( 'the_content', 'wp_staticize_emoji' );
remove_filter( 'comment_text', 'wp_staticize_emoji' );
} );Такой вариант безопаснее для админки, если вы не хотите менять поведение редактора и служебных экранов. Для большинства сайтов этого достаточно.
Как отключить эмодзи через плагин
Если не хочется править код, можно использовать плагин, который убирает лишние элементы WordPress. В экосистеме WPShop для таких задач подходит Clearfy Pro: он закрывает типовые задачи по чистке сайта, включая отключение ненужных функций ядра. Это удобнее, чем держать отдельный самописный сниппет, если вы параллельно убираете и другие лишние элементы.
Плюс плагина в том, что настройка делается через интерфейс, а не через редактирование файлов темы. Минус — это ещё одна зависимость в админке. Если у вас уже есть собственный набор оптимизаций, код часто проще сопровождать.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в теме или mu-plugin | Прозрачно, без лишних зависимостей, легко проверить | Нужно аккуратно обновлять и не потерять при смене темы |
| Плагин для чистки сайта | Быстрая настройка, удобно для нескольких оптимизаций сразу | Добавляется ещё один плагин и его нужно поддерживать |
| Ничего не делать | Ноль риска от правок | Лишний скрипт и стили остаются в выдаче |
Проверка результата после внедрения
После отключения важно не просто «поверить», а проверить фактически. Делайте это в таком порядке:
- Откройте главную страницу и любую внутреннюю страницу в режиме инкогнито.
- Посмотрите исходный код страницы и убедитесь, что
wp-emoji-release.min.jsбольше не подключается. - Проверьте Network: отдельного запроса к emoji-скрипту быть не должно.
- Если отключали через код, откройте админку и убедитесь, что редактор и комментарии работают как обычно.
- Если используете кэш-плагин, очистите кэш и повторите проверку на «чистой» версии страницы.
Для более точной проверки можно временно включить логирование подключённых скриптов через инструменты разработчика браузера или посмотреть список enqueued assets в теме, если у вас есть отладочный шаблон.
Частые ошибки и как их исправить
Код добавили не туда
Если вставить сниппет в файл, который не загружается на фронтенде, ничего не изменится. Надёжнее использовать functions.php дочерней темы или mu-plugin. Если тема обновляется часто, mu-plugin предпочтительнее.
Отключили только скрипт, но оставили стили
Иногда убирают print_emoji_detection_script, но забывают про print_emoji_styles. В результате часть обвязки остаётся. Проверяйте оба подключения.
Не очистили кэш
После правки старый HTML может продолжать отдаваться из кэша. Это особенно заметно на сайтах с серверным кэшем или CDN. Если проверяете изменения и не видите результата, сначала очищайте кэш, потом обновляйте страницу с принудительной перезагрузкой.
Сломали админку из-за слишком агрессивного отключения
Если вы убрали emoji-обработку и одновременно начали отключать другие core-скрипты без проверки, можно случайно затронуть редактор или служебные экраны. Не смешивайте несколько оптимизаций в один непроверенный блок. Сначала отключите только emoji, потом тестируйте.
Чек-лист перед публикацией изменений
- Код добавлен в дочернюю тему или mu-plugin, а не в случайный файл.
- Отключены и скрипт, и стили emoji, если нужен полный эффект.
- Проверен фронтенд в инкогнито без кэша.
- Очистен кэш плагина, сервера и CDN, если они используются.
- Админка, редактор и комментарии открываются без ошибок.
- В исходнике страницы больше нет
wp-emoji-release.min.js.
Что делать, если нужен только минимальный фронтенд
Если цель не в полном отключении функций WordPress, а в аккуратной чистке фронтенда, не трогайте всё подряд. В таких случаях лучше ограничиться только теми подключениями, которые реально видны в HTML и Network. Emoji — как раз хороший кандидат: его легко убрать, легко проверить и легко вернуть назад, если потребуется.
Для сайтов, где уже используется набор оптимизаций, удобнее держать такие правки в одном месте: либо в собственном mu-plugin, либо в плагине для технической чистки. Тогда изменения не размазываются по теме и не теряются при обновлениях.