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

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

Ниже разберём рабочий вариант для админки: что именно отключается, как проверить, что всё сработало, и какие ошибки чаще всего ломают результат.

Что именно мешает и как это выглядит

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

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

Диагностика: убедитесь, что проблема действительно в emoji

Перед правкой кода откройте любую страницу админки и проверьте исходный код через инструменты разработчика. Ищите:

  • wp-emoji-release.min.js;
  • inline-скрипт с вызовом wpEmojiSettingsSupports;
  • подключение стилей emoji, если они есть в конкретной версии WordPress или в связке с плагинами.

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

Быстрая проверка через браузер

  • Откройте страницу /wp-admin/.
  • Нажмите Ctrl+U или используйте инспектор.
  • Найдите emoji в исходнике.
  • Сравните список подключённых скриптов до и после правки.

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

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

<?php
/**
 * Plugin Name: Disable Emoji in Admin
 */

add_action( 'admin_init', function () {
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_scripts', 'print_emoji_detection_script' );
} );

add_filter( 'tiny_mce_plugins', function ( $plugins ) {
    if ( ! is_array( $plugins ) ) {
        return array();
    }

    return array_diff( $plugins, array( 'wpemoji' ) );
} );

add_filter( 'emoji_svg_url', '__return_false' );

Этот вариант не лезет в ядро и не отключает emoji глобально «вслепую». Он убирает типовые подключения, которые WordPress добавляет сам, и не мешает обычной работе редактора.

Если нужен только админский контур

Иногда на фронтенде emoji оставляют, а в админке убирают только лишнее. Тогда не трогайте фронтовые хуки вроде wp_head без необходимости. Для админки достаточно сосредоточиться на admin_print_scripts и admin_print_styles.

<?php
add_action( 'admin_init', function () {
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );
} );

Если после этого в редакторе всё ещё появляется emoji-скрипт, значит, его добавляет не ядро, а плагин или тема. Тогда нужно искать источник по списку подключений, а не добавлять ещё один слой отключений.

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

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

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

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

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

  • Откройте страницу редактирования записи.
  • Проверьте исходный код на наличие wp-emoji-release.min.js.
  • Убедитесь, что в списке скриптов нет emoji-обработчика.
  • Создайте тестовую запись с обычным текстом и символами вроде :) и ;.
  • Проверьте, что визуальный и текстовый редактор не сломались.

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

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

Отключают emoji через неправильный хук

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

Ломают редактор, убирая лишнее

Иногда вместе с emoji отключают слишком много фильтров TinyMCE или правят массив плагинов без проверки типа. Если $plugins не массив, а вы сразу вызываете array_diff(), получите предупреждения. Поэтому в коде нужна проверка is_array().

Путают emoji и иконки редактора

Emoji-скрипты не имеют отношения к Dashicons или к иконкам интерфейса админки. Если после правки пропали иконки, значит, вы отключили не то. Возвращайте изменения и проверяйте, какие именно файлы исчезли из исходника.

Ожидают эффект без очистки кэша

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

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

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

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как отключить открытые XML-sitemap в WordPress и закрыть лишние карты сайта от индексации
30.08.2026
Как отключить emoji в WordPress через код и плагин
20.08.2026
Как отключить архив авторов в WordPress без потери SEO и дублей
16.08.2026
Как отключить pingback в WordPress без поломки комментариев и уведомлений
04.09.2026
Как запретить REST API для гостей в WordPress без поломки редактора и плагинов
15.09.2026
×
Сделай WordPress мощнее!

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

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