В WordPress поддержка emoji включена по умолчанию и тянет за собой дополнительный JavaScript, который подключается и в публичной части, и в админке. На небольших сайтах это редко заметно, но в проектах, где важна чистота фронтенда, контроль над запросами и минимизация лишних подключений, этот функционал часто отключают.
Важно понимать: речь не о самих эмодзи как символах, а о скрипте wp-emoji-release.min.js и связанных фильтрах. Если у вас современный браузер и нет требований к старым клиентам, отключение обычно безопасно. Но делать это стоит осознанно: сначала проверить, действительно ли скрипт есть, а потом уже убирать его кодом или через плагин.
Когда отключение эмодзи действительно нужно
Чаще всего это не вопрос «ускорить сайт на 100 баллов», а вопрос гигиены фронтенда. Скрипт небольшой, но на проектах с жестким контролем над загрузками даже один лишний файл может быть лишним.
Типичные сценарии
- на сайте уже есть строгая политика по минимизации JS;
- вы собираете фронтенд без лишних подключений и хотите убрать встроенные зависимости WordPress;
- нужно сократить число запросов на страницах с высокой посещаемостью;
- вы используете собственную сборку темы и хотите держать список подключаемых скриптов под контролем;
- в админке тоже не нужен этот функционал, и вы хотите отключить его везде.
Диагностика: есть ли emoji-скрипт на сайте
Перед изменениями проверьте, что именно подключается. Откройте исходный код страницы и найдите wp-emoji-release.min.js. Если используете DevTools, вкладка Network покажет отдельный запрос к этому файлу. В админке проверка такая же: откройте любую страницу консоли и посмотрите список загрузок.
Если скрипт не найден, возможно, его уже отключает тема, плагин оптимизации или сборка сайта. В таком случае не стоит добавлять еще один слой отключения без необходимости: можно получить лишние фильтры и усложнить отладку.
Способы отключения: код, плагин или компромисс
Для WordPress есть два практичных пути: убрать поддержку emoji кодом или использовать плагин, который делает это вместе с другими функциями чистки. Если у вас уже стоит инструмент для оптимизации, иногда проще включить нужный переключатель там. Если нужен точечный контроль — лучше код.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код в теме или mu-plugin | Нужен точечный и предсказуемый контроль | Без лишних зависимостей, прозрачно для разработки | Нужно не забыть при обновлении темы |
| Плагин оптимизации | Уже используете инструмент для чистки WordPress | Быстро включить, не лезть в код | Может отключать больше, чем нужно |
| Ничего не делать | Сайт простой, нет требований к минимизации | Ноль риска сломать что-то лишнее | Лишний скрипт остается в загрузке |
Пошагово: как отключить эмодзи кодом
Самый надежный вариант — добавить код в functions.php дочерней темы или, что лучше, в небольшой mu-plugin. Так вы не потеряете настройку после обновления темы.
Код для фронтенда и админки
<?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' );
} );Этот набор убирает и скрипт, и стили, а также фильтры, которые WordPress использует для преобразования emoji в старых сценариях. Для большинства современных сайтов этого достаточно.
Если хотите отключить только на фронтенде
Иногда админку трогать не нужно. Тогда можно убрать только публичную часть:
<?php
add_action( 'init', function () {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
} );Такой вариант оставляет часть служебной логики в WordPress, но не грузит фронтенд лишним кодом. Это разумный компромисс, если редакторы активно работают в админке и вы не хотите менять поведение там без необходимости.
Как сделать это через плагин
Если на сайте уже используется плагин для технической чистки, проверьте, есть ли там отключение emoji. Например, в Clearfy Pro есть набор функций для отключения лишнего в WordPress, и это удобнее, чем держать отдельный самописный сниппет, если вы уже управляете подобными настройками из одного места. Ссылка на продукт: Clearfy Pro.
Плюс плагина в том, что настройки обычно можно включать и выключать без правки кода. Минус — вы зависите от интерфейса и набора функций конкретного решения. Если нужен только emoji-скрипт, код остается более точным инструментом.
Проверка результата после внедрения
После отключения не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что скрипт действительно исчез из загрузок и что ничего не сломалось в письмах, комментариях и редакторе.
Что проверить вручную
- в исходнике страницы больше нет
wp-emoji-release.min.js; - в Network не появляется запрос к emoji-скрипту;
- в
<head>не выводятся связанные inline-скрипты; - в админке редактор и комментарии работают как раньше;
- эмодзи в контенте отображаются корректно в современных браузерах.
Быстрая проверка через браузер
// В консоли браузера можно проверить наличие скрипта по URL
Array.from(document.scripts).some((script) => script.src.includes('wp-emoji-release.min.js'))Если выражение возвращает false, скрипт на странице не подключен. Для полной уверенности проверьте несколько типов страниц: главную, запись, архив и страницу с комментариями.
Частые ошибки и как их исправить
Отключили не там, где нужно
Если код добавлен в родительскую тему, а потом тема обновилась, настройка может исчезнуть. Для постоянных правок используйте дочернюю тему или mu-plugin. Это особенно важно, если вы ведете несколько сайтов и хотите одинаковое поведение после обновлений.
Убрали только один хук и оставили стили
Иногда удаляют только print_emoji_detection_script, но забывают про print_emoji_styles. В результате часть служебных подключений остается. Проверяйте оба места: wp_head и стили, которые выводятся через wp_print_styles и admin_print_styles.
Сломали совместимость с плагином оптимизации
Если у вас уже есть плагин, который отключает emoji, второй такой же сниппет обычно не нужен. Двойное отключение редко ломает сайт, но усложняет поиск причины, если что-то пойдет не так. Сначала проверьте существующие оптимизации, потом добавляйте свой код.
Ожидали заметного прироста скорости
Отключение emoji — это точечная чистка, а не универсальный ускоритель. Если сайт медленный, искать проблему нужно в тяжелых запросах, лишних плагинах, неэффективном кэше и больших изображениях. Emoji-скрипт — лишь один из мелких элементов общей картины.
Практические советы по безопасности и поддержке
Если вы вносите код вручную, держите его в отдельном файле или mu-plugin, а не в случайном фрагменте темы. Так проще откатить изменение и понять, что именно отвечает за поведение сайта. Перед правкой на боевом проекте сделайте резервную копию и проверьте изменения на staging-копии.
Если вы работаете в команде, зафиксируйте решение в репозитории или хотя бы в технической заметке: где отключено emoji, почему и чем это проверять. Такие мелочи экономят время, когда через полгода кто-то снова увидит wp-emoji-release.min.js и начнет искать «лишний» плагин.
Для сайтов, где важна системная чистка WordPress, удобнее собирать подобные настройки в одном инструменте, а не размазывать по нескольким сниппетам. Но если задача точечная, код остается самым честным и предсказуемым способом.