wpcore.ru wordpress wpcore.ru

Как отключить emoji в WordPress без лишних запросов и конфликтов с темой

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

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

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

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

Типичные сценарии

  • сайт не использует emoji в интерфейсе и контенте;
  • нужно убрать один-двa лишних HTTP-запроса из head;
  • тема или сборка уже оптимизируют фронтенд, а встроенный emoji-скрипт остаётся;
  • нужно уменьшить количество встроенных действий WordPress без риска для контента.

Диагностика: что именно грузит WordPress

Перед правкой проверьте, есть ли на странице подключение wp-emoji-release.min.js и inline-скрипт, который WordPress вставляет для определения поддержки emoji. Это можно увидеть в исходном коде страницы или в DevTools на вкладке Network.

Если вы видите такие признаки, значит отключение действительно сработает:

  • в HTML есть ссылка на wp-emoji-release.min.js;
  • в <head> присутствует inline-скрипт с проверкой canvas;
  • в админке и на фронтенде поведение одинаковое, потому что это ядро WordPress, а не тема.

Если скрипта нет, значит его уже убрали тема, плагин оптимизации или MU-plugin. В таком случае повторно отключать нечего.

Пошаговое решение через functions.php или MU-plugin

Самый надёжный способ — снять стандартные действия WordPress, которые отвечают за emoji. Лучше делать это не в активной теме, а в небольшом MU-plugin, чтобы правка не потерялась при обновлении темы.

Вариант 1: код в MU-plugin

Создайте файл wp-content/mu-plugins/disable-emojis.php. Если папки mu-plugins нет, создайте её вручную.

<?php
/**
 * Plugin Name: Disable Emojis
 */

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 применяет к лентам и письмам.

Вариант 2: через 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 там. Но если нужен точечный контроль, код надёжнее: он делает ровно то, что вы прописали, и не тянет лишние настройки.

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

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

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

После добавления кода откройте главную страницу и любую внутреннюю страницу в режиме инкогнито. Дальше проверьте три вещи.

  1. В исходном коде страницы больше нет wp-emoji-release.min.js.
  2. В <head> отсутствует inline-скрипт emoji detection.
  3. В админке редактор и форма комментариев работают как раньше, без ошибок JavaScript.

Если хотите проверить точнее, откройте DevTools → Network и обновите страницу. Запрос к emoji-скрипту должен исчезнуть. Для быстрой проверки по исходнику можно использовать поиск по странице: emoji или wp-emoji.

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

Код добавили, но скрипт остался

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

Отключили emoji, но в письмах или RSS что-то изменилось

Это бывает, если убрали только фронтенд-часть и забыли фильтры wp_staticize_emoji и wp_staticize_emoji_for_email. Для полного отключения нужны обе группы правок.

Появились конфликты с плагином оптимизации

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

Удалили не только emoji, но и нужные стили

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

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

Перед изменением кода сделайте резервную копию файла или коммит в git, если проект под версионным контролем. Это особенно важно, если вы правите functions.php на живом сайте.

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

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

×

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

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

пишет статьи

готовит SEO

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

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