Как отключить Emoji в WordPress и убрать лишние запросы без поломки редактора

Emoji в WordPress сами по себе не проблема, но на старых или нагруженных проектах они добавляют лишние подключения скриптов и стилей, которые часто не нужны. Обычно это заметно на сайтах, где контент пишут без смайлов, а тема и плагины всё равно тянут поддержку emoji в <head> и в админке.

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

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

Отключать emoji стоит не ради «чистоты кода», а когда есть конкретная причина. На практике это полезно, если:

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

Важно понимать: речь не о «тяжёлой» нагрузке, а о небольшом, но лишнем функционале. На одном сайте это почти незаметно, на другом — часть общей зачистки, которая помогает убрать мусор из шаблона и ускорить рендер.

Диагностика: как понять, что emoji подключаются

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

<script type="text/javascript">
window._wpemojiSettings = { ... };
</script>
<script src="https://example.com/wp-includes/js/wp-emoji-release.min.js?ver=6.x" type="text/javascript"></script>

Ещё один способ — открыть DevTools и посмотреть вкладку Network. Если на странице есть запрос к wp-emoji-release.min.js, значит поддержка emoji активна. На практике это чаще всего видно и без инструментов: достаточно просмотреть <head> или воспользоваться поиском по исходнику страницы.

Что именно отключаем

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

Пошаговое решение через код

Самый надёжный вариант — добавить код в functions.php дочерней темы или в собственный мини-плагин. Для продакшена мини-плагин даже удобнее: он не зависит от темы и не пропадёт при смене шаблона.

Ниже рабочий набор для отключения emoji на фронтенде и в админке:

<?php
/**
 * Disable WordPress emoji support.
 */
function wpall_disable_emojis() {
    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_action( 'init', 'wpall_disable_emojis' );

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

Если нужен вариант через мини-плагин

Когда править тему неудобно, создайте простой плагин. Это особенно полезно на проектах, где технические правки должны жить отдельно от дизайна.

<?php
/**
 * Plugin Name: Disable Emoji Support
 * Description: Removes WordPress emoji scripts and styles.
 * Version: 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

function wpall_disable_emojis() {
    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_action( 'init', 'wpall_disable_emojis' );

Такой плагин можно положить в wp-content/plugins/disable-emoji-support/disable-emoji-support.php и активировать из админки. Для небольших сайтов это часто удобнее, чем держать код в теме.

Сравнение подходов: код, плагин или ничего не делать

ПодходКогда подходитПлюсыМинусы
Код в дочерней темеЕсли тема уже под контролем разработчикаБыстро, без лишних зависимостейПривязан к теме
Мини-плагинЕсли нужно отделить технастройки от дизайнаНе зависит от темы, легко переноситсяНужно хранить и обновлять отдельный файл
Ничего не делатьЕсли emoji реально используются в контенте и админкеНоль риска для совместимостиЛишние скрипты остаются

Если проект уже оброс техническими правками, мини-плагин обычно практичнее. Если вы ведёте один сайт и у вас есть дочерняя тема, код в functions.php тоже нормальный вариант.

Проверка результата после внедрения

После добавления кода не ограничивайтесь визуальной проверкой. Нужно убедиться, что WordPress действительно перестал выводить emoji-скрипты.

  1. Откройте главную страницу сайта в режиме инкогнито.
  2. Посмотрите исходный код и найдите wp-emoji-release.min.js.
  3. Проверьте, что в <head> больше нет inline-блока window._wpemojiSettings.
  4. Откройте админку и убедитесь, что редактор и форма комментариев работают как раньше.
  5. Если используете кэш-плагин или серверный кэш, очистите его и повторите проверку.

Если у вас есть Lighthouse или PageSpeed Insights, можно сравнить отчёт до и после. Не ждите большого скачка метрик: здесь важнее факт удаления лишнего ресурса и уменьшение количества запросов.

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

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

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

Отключили emoji, но скрипт остался

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

Сломали отображение emoji в письмах

Если вы используете emoji в письмах уведомлений, не убирайте фильтр wp_staticize_emoji_for_email без понимания последствий. Для большинства проектов это не критично, но если в шаблонах писем emoji нужны, лучше оставить email-часть как есть и отключить только фронтенд.

Проверяли только в браузере, но не очистили кэш

Это типичная причина ложных выводов. После правки кода обязательно очищайте:

  • кэш плагина;
  • серверный кэш, если он есть;
  • CDN-кэш;
  • кэш браузера при ручной проверке.

Практические советы по безопасности и производительности

Если вы регулярно делаете такие технические правки, не редактируйте основной functions.php без резервной копии. Для небольших оптимизаций удобнее держать отдельный файл с набором отключаемых функций или использовать мини-плагин. Так проще откатить изменения и не смешивать их с логикой темы.

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

И ещё один практический момент: не отключайте то, что не проверили на своём контенте. Если в текстах, комментариях или письмах реально используются emoji, сначала протестируйте отображение на staging-версии. В WordPress такие изменения обычно безопасны, но лучше проверить сценарий, чем потом искать, почему в письмах или комментариях пропали символы.

⭐⭐⭐⭐⭐