wpapp.ru wordpress wpapp.ru

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

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

Речь не о «сломать смайлики в контенте», а о том, чтобы отключить именно механизм подгрузки wp-emoji-release.min.js и связанные с ним действия в wp_head и wp_print_styles. Если на сайте не нужна старая кроссбраузерная подмена emoji, это безопасная оптимизация.

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

Сначала стоит понять, есть ли у вас реальная проблема. На современных браузерах WordPress-emoji почти всегда дублируют нативную поддержку системы. Если вы смотрите отчёт по запросам в DevTools или Lighthouse и видите лишний JavaScript, это нормальный повод убрать его. Особенно если вы уже чистите фронтенд от ненужных подключений и следите за количеством запросов в шапке страницы.

Диагностика: что именно искать

Проверьте исходный код страницы и список сетевых запросов. Ищите:

  • wp-emoji-release.min.js в HTML;
  • инлайн-скрипт, который добавляет классы emoji и no-js;
  • подключение стилей, связанных с emoji, если они есть в вашей версии ядра или в связке с плагинами оптимизации.

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

Как отключить emoji через functions.php или mu-plugin

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

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

Если вы добавляете код в тему, логика та же, но лучше не привязывать такую оптимизацию к теме, которую можно сменить. Для постоянных технических правок mu-plugins обычно надёжнее.

Что делает этот код

Он отключает только встроенную проверку emoji и вывод связанных скриптов/стилей. Обычный текст, символы и emoji в контенте не исчезают. В современных браузерах они будут отображаться штатно средствами самой системы.

Плагин или код: что выбрать

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

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

Если вы уже используете технический плагин вроде Clearfy Pro, проверьте, нет ли там отдельной опции отключения emoji. Это удобнее, чем держать ещё один кусок кастомного кода. Но если задача точечная, код обычно чище.

Пошаговое решение без лишних рисков

  1. Сделайте резервную копию файла, куда будете вносить изменения.
  2. Добавьте код в mu-plugin или в functions.php дочерней темы.
  3. Очистите кэш сайта, если используется кэш-плагин или серверный кэш.
  4. Откройте страницу в режиме инкогнито и проверьте исходный код.
  5. Сравните список сетевых запросов до и после изменения.

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

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

Проверка должна быть практической. Не ограничивайтесь тем, что «страница открывается». Откройте исходный код и убедитесь, что в нём больше нет wp-emoji-release.min.js. Затем в DevTools на вкладке Network обновите страницу и посмотрите, исчез ли этот запрос.

Дополнительно можно проверить через командную строку, если у вас есть доступ к серверу:

curl -s https://example.com/ | grep -i emoji

Если команда ничего не возвращает, это хороший знак, но всё равно проверьте страницу в браузере. На сайтах с кэшем и динамическими блоками лучше смотреть оба источника.

Что считать нормальным результатом

  • в HTML нет ссылок на emoji-скрипт;
  • в Network нет отдельного запроса к wp-emoji-release.min.js;
  • сайт по-прежнему корректно показывает emoji в контенте;
  • админка WordPress не потеряла базовую функциональность.

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

Ошибка 1: код добавили в родительскую тему. После обновления он пропадёт. Перенесите его в дочернюю тему или в mu-plugin.

Ошибка 2: отключили emoji и сразу увидели старый HTML. Это почти всегда кэш. Очистите плагин кэша, серверный кэш и CDN, если он есть.

Ошибка 3: удалили не только emoji, но и лишние хуки в админке. Не трогайте больше, чем нужно. Для этой задачи достаточно стандартных remove_action().

Ошибка 4: проверили только главную страницу. Иногда тема или плагин выводят отдельные шаблоны. Проверьте записи, страницы и архивы, если они у вас по-разному собираются.

Безопасность и производительность

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

Для сайтов с регулярной технической поддержкой удобно вести такие правки в отдельном mu-plugin. Тогда можно быстро понять, что именно отключено, и не искать это по шаблонам темы. Если нужен более широкий набор настроек очистки, имеет смысл смотреть в сторону инструментов, где такие опции собраны в одном месте, например в Clearfy Pro: https://wpshop.ru/plugins/clearfy.

Главный принцип здесь простой: отключайте только то, что реально не используется, и сразу проверяйте результат на живой странице. Тогда оптимизация останется контролируемой, а не станет источником новых багов.

×
Сделай WordPress мощнее!

Скидка -20% на топовые премиум плагины

Выбрать плагин сейчас ⋙