wpedu.ru wordpress WP Education

Как отключить emoji в WordPress без поломки верстки и редактора

В WordPress emoji-поддержка включается не только для комментариев или контента. Сайт может тянуть лишний скрипт в <head>, добавлять HTTP-запросы и оставлять следы в админке, даже если вы не используете emoji как функциональность. На небольших проектах это обычно не критично, но на аккуратно настроенных сайтах лишние подключения лучше убрать: меньше мусора в HTML, проще контроль над фронтендом, меньше поводов для конфликтов с оптимизаторами и кешированием.

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

Что именно отключаем и где это видно

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

Проблема обычно проявляется так:

  • в исходном коде страницы есть подключение wp-emoji-release.min.js;
  • в <head> появляется dns-prefetch на s.w.org;
  • оптимизатор показывает лишний JS, который не нужен для контента;
  • после агрессивной минификации возникают конфликты, хотя сам emoji тут не виноват напрямую.

Диагностика проблемы

Сначала проверьте, действительно ли emoji подключается на вашем сайте. Откройте исходный код страницы и найдите wp-emoji-release.min.js. Если используете Chrome DevTools, можно посмотреть вкладку Network и отфильтровать по emoji или wp-emoji.

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

Как отключить emoji в WordPress: рабочие варианты

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

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

Вариант 1: отключение через код

Самый надежный способ — добавить небольшой фрагмент в 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' );
    add_filter( 'emoji_svg_url', '__return_false' );
} );

Этот код убирает стандартные подключения emoji и отключает SVG-URL для emoji, если он используется. Для большинства сайтов этого достаточно.

Вариант 2: mu-plugin, если не хотите зависеть от темы

Если тема часто меняется или у вас несколько окружений, удобнее вынести код в wp-content/mu-plugins/disable-emoji.php. Mu-plugin загружается автоматически и не зависит от активации в админке.

<?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' );
    add_filter( 'emoji_svg_url', '__return_false' );
} );

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

Вариант 3: если используете плагин оптимизации

Некоторые плагины для оптимизации умеют убирать emoji и чистить head. Это удобно, если вы уже централизованно управляете такими настройками. Но проверяйте, не дублирует ли плагин то, что вы уже отключили кодом. Двойное вмешательство редко ломает сайт, но усложняет диагностику.

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

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

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

Если сайт под кеширующим плагином, не ограничивайтесь очисткой только в админке WordPress. Часто именно кеш или CDN показывает старую версию страницы, и кажется, что код не сработал.

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

Проверка должна быть не на уровне «страница открылась», а на уровне конкретных признаков.

  • В исходном коде страницы больше нет wp-emoji-release.min.js.
  • В <head> отсутствует dns-prefetch на emoji-связанные домены.
  • В админке не подгружается emoji-скрипт без необходимости.
  • Текст с обычными символами и смайлами отображается так же, как и раньше, если браузер их поддерживает нативно.

Дополнительно можно открыть DevTools и проверить, что лишний JS-запрос исчез из Network. Если используете Lighthouse или похожий аудит, смотрите не на «магическое улучшение», а на то, что конкретный ресурс больше не загружается.

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

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

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

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

Иногда убирают только wp_head, а в админке emoji-скрипт остается. Это не критично, но если цель — полная чистка, нужно убрать и админские подключения тоже.

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

После правки код может быть уже изменен, но вы продолжаете видеть старую версию страницы. Это типичная ситуация при наличии кеш-плагина, серверного кеша или CDN.

Сломали не emoji, а минификацию

Если после отключения emoji сайт начал вести себя странно, причина часто не в самом коде, а в том, как плагин оптимизации объединяет и переносит скрипты. В таком случае временно отключите минификацию JS и проверьте, исчезла ли проблема.

Безопасность и производительность: что учесть на реальном сайте

Отключение emoji — это не «ускоритель в два раза», а точечная чистка. Но на проектах с жестким контролем фронтенда такие мелочи полезны: меньше лишних запросов, меньше шума в head, проще поддерживать предсказуемую сборку.

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

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше