WPExperts

Как отключить Emoji в WordPress через код и плагин

Встроенная поддержка Emoji в WordPress редко нужна на обычном сайте, но она всё равно подгружает лишний скрипт, стили и фильтры в wp_head, admin_print_scripts и wp_print_styles. Если задача — выжать лишние запросы, убрать ненужный код из фронтенда или привести сайт к более чистой технической конфигурации, Emoji можно отключить без заметных побочных эффектов.

Ниже — рабочие способы: через код, через плагин и через проверку результата. Сразу оговорка: речь именно о штатных Emoji WordPress, а не о замене иконок или кастомных шрифтах.

Когда отключение Emoji действительно имеет смысл

На большинстве сайтов это не критичная оптимизация, но в некоторых сценариях она оправдана:

  • сайт работает на минимальном наборе скриптов и вы следите за каждым лишним запросом;
  • нужна более чистая разметка в <head> и меньше подключений на фронтенде;
  • вы используете собственную сборку темы и хотите убрать лишние фильтры WordPress;
  • на сайте нет необходимости в автоматической подмене Emoji в старых браузерах.

Если у вас контент-редакция или сайт с активной публикацией из админки, отключение Emoji обычно безопасно. Но лучше не делать это «вслепую»: сначала проверьте, не зависит ли от этого какой-то плагин или кастомный блок.

Диагностика: что именно добавляет WordPress

По умолчанию WordPress вставляет в страницу небольшой набор подключений для Emoji. На фронтенде это обычно видно как дополнительные inline-скрипты и вызовы, связанные с wp-emoji-release.min.js. В админке логика похожая: WordPress старается обеспечить одинаковое поведение редактора и панели управления.

Проверить наличие можно двумя способами:

  1. Откройте исходный код страницы и найдите emoji или wp-emoji-release.min.js.
  2. В DevTools на вкладке Network отфильтруйте запросы по emoji и посмотрите, есть ли загрузка скрипта.

Если вы видите только инлайн-скрипт без отдельного файла, это тоже нормально: WordPress часто добавляет не только внешний JS, но и небольшой блок инициализации.

Как отключить Emoji через код темы или mu-plugin

Самый предсказуемый вариант — убрать фильтры WordPress через functions.php дочерней темы или, что лучше для технических правок, через 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' );
} );

Этот код убирает и фронтенд, и админку. Если вам нужно отключить Emoji только на сайте, но оставить в редакторе, не удаляйте действия для admin_print_scripts и admin_print_styles.

Вариант для mu-plugin

Если правки должны переживать смену темы, создайте файл, например wp-content/mu-plugins/disable-emoji.php:

<?php
/**
 * Plugin Name: Disable 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' );
} );

Такой способ удобнее, если вы ведёте несколько сайтов или хотите централизованно контролировать технические настройки.

Как отключить Emoji через плагин

Если код вносить не хочется, используйте плагин оптимизации, который умеет выключать штатные функции WordPress. Важно не ставить второй плагин ради одной галочки, если у вас уже есть инструмент для чистки сайта и SEO-настроек.

Например, в Clearfy Pro есть набор настроек для отключения лишних функций WordPress, включая Emoji. Это удобно, если вы параллельно хотите убрать и другие мелкие технические хвосты без ручного кода.

СпособПлюсыМинусы
Код в темеБез лишних зависимостей, быстро, прозрачноСлетает при смене темы, если не использовать дочернюю тему
mu-pluginНе зависит от темы, удобно для поддержкиНужно один раз правильно развернуть файл
Плагин оптимизацииУправление через интерфейс, можно отключать и другие функцииДобавляет ещё один слой настроек и зависимость от плагина

Пошагово: безопасная схема внедрения

  1. Сделайте резервную копию файлов и базы, если правите production-сайт.
  2. Выберите способ: код в дочерней теме, mu-plugin или плагин.
  3. Внесите изменения только в одном месте, не дублируйте отключение в нескольких инструментах сразу.
  4. Очистите кэш страницы, если у вас включён серверный кэш, плагин кэширования или CDN.
  5. Проверьте исходный код и Network в браузере.

Если вы используете кэширование на уровне плагина или сервера, без очистки кэша вы можете решить, что код не сработал, хотя на самом деле на сайте просто отдается старая версия HTML.

Как проверить, что отключение сработало

Проверка должна быть не «на глаз», а по факту:

  • в исходном коде страницы больше нет wp-emoji-release.min.js;
  • в <head> отсутствуют emoji-скрипты и связанные стили;
  • в админке не появляется отдельная загрузка emoji-скрипта, если вы отключали и её;
  • страница проходит обычную работу редактора без ошибок JavaScript.

Для быстрой проверки можно открыть консоль браузера и выполнить поиск по исходнику страницы. Если вы видите строку emoji только в тексте статьи, а не в подключениях WordPress, значит отключение отработало корректно.

Частые ошибки и как их исправить

Код добавили не туда

Самая частая проблема — вставка в файл активной темы, а потом обновление темы или переключение на другую. Для постоянной настройки лучше использовать дочернюю тему или mu-plugin.

Отключили только фронтенд

Иногда убирают только wp_head, а в админке скрипт остаётся. Это не ошибка, если вы так и планировали. Но если задача — полностью убрать Emoji, нужно удалить и административные хуки.

Не очистили кэш

После правки HTML может продолжать отдаваться старая версия страницы. Очистите кэш плагина, серверный кэш и, если есть, CDN. Иначе вы будете искать проблему там, где её уже нет.

Сломали email-вывод

Редко, но бывает: убирают фильтры без понимания, что wp_staticize_emoji_for_email влияет на письма WordPress. Если у вас есть рассылки или системные уведомления, проверьте, как они выглядят после отключения.

Что ещё стоит проверить после оптимизации

Отключение Emoji — мелкая правка, но её удобно совмещать с общей чисткой сайта. Если вы уже работаете с технической оптимизацией, проверьте:

  • нет ли лишних подключений в wp_head;
  • не дублируются ли скрипты темы и плагинов;
  • не грузится ли на каждой странице то, что нужно только в админке;
  • не мешают ли оптимизации плагины минификации и кэша друг другу.

Если вам нужен более широкий набор технических отключений без ручного кода, имеет смысл смотреть на инструменты класса Clearfy Pro, но только если вы действительно используете их настройки, а не ставите плагин ради одной функции.

Практический вывод для поддержки сайта

Если задача — убрать Emoji из WordPress, не усложняйте решение. Для одного сайта достаточно короткого кода в mu-plugin или дочерней теме. Для проекта с несколькими техническими настройками удобнее плагин оптимизации. В обоих случаях проверяйте результат по исходному коду и после очистки кэша — это единственный нормальный способ убедиться, что правка реально сработала.

×
до 3225₽

Продавай темы и плагины WordPress!

Лови с каждой продажи

Начать ⋙